2012-02-17 26 views
12

http://sugarjs.com/Làm thế nào để sử dụng sugar.js trong nodejs?

Đó là thư viện để tôi có thể tải nó trực tiếp trên trình duyệt. Nó cũng là một gói npm, nhưng làm thế nào tôi có thể sử dụng nó như một moudule?

Trong trình duyệt, tải một tập tin js sẽ thay đổi các đối tượng dễ dàng, nhưng không giống nhau trong khi làm việc trong nodejs, và tôi không thể tìm ra.

Trả lời

8

Đường không được sử dụng làm mô-đun CommonJS chuẩn, vì toàn bộ điểm của thư viện là sửa đổi các mẫu thử được tích hợp sẵn. Một trong những bạn yêu cầu nó vào dự án của bạn, tất cả các đối tượng được xây dựng trong sẽ được mở rộng và bạn có thể sử dụng chúng từ đó.

Chỉnh sửa: Điều này hiện không còn đúng với v2.0.0. Sửa đổi mẫu thử hiện được chọn tham gia để bạn có thể sử dụng Sugar giống như bất kỳ mô-đun nút nào khác bằng cách sử dụng đối tượng đã xuất. Để biết thêm, xem https://sugarjs.com/quickstart/

28

Bạn chỉ cần cài đặt các module:

npm install sugar 

sau đó sử dụng nó giống như các API cho biết:

var http = require('http'); 
var sugar = require('sugar'); 

http.createServer(function (req, res) { 

    res.writeHead(200, { 'Content-Type': 'text/html' }); 
    res.end('hey_there_good-lookin'.camelize()); 

}).listen(process.env.PORT || 8080); 
+0

Bản trình diễn hay. Giờ thì tôi đã hiểu. – jiyinyiyong

+8

Có bất kỳ điểm nào trong việc ấn định giá trị trả về của 'require ('sugar')' cho một biến không? – callum

+4

@callum Nope 'require ('sugar')' trả về một đối tượng trống. Viết phần 'var sugar =' là vô dụng. –

1

Không sử dụng sugar.js - nó đổi nguyên mẫu mẹ đẻ vì vậy mọi thứ sẽ sử dụng chúng - không chỉ mô-đun của bạn. Làm điều này là vô cùng xảo quyệt, nó không mô-đun, và nó sẽ cắn bạn trong ass khi bạn ít mong đợi nó.

Giá trị của nó nói lại lần nữa: không sử dụng bất kỳ mô-đun nào sửa đổi nguyên mẫu gốc bên ngoài ngữ cảnh polyfilling (rất hợp lý). Không sử dụng Sugar.js. Đặc biệt trong node.js - có một hệ thống mô-đun ở đó vì một lý do. Cá nhân tôi đã gặp phải những vấn đề khủng khiếp với những thứ làm thay đổi nguyên mẫu gốc. Những điều kỳ lạ có thể xảy ra sâu trong ruột của mã của bạn.

Dưới đây là một số chi tiết thông tin về lý do tại sao thay đổi đối tượng có nguồn gốc là xấu:

http://www.nczonline.net/blog/2010/03/02/maintainable-javascript-dont-modify-objects-you-down-own/

UPDATE: Có vẻ như Đường v2.0.0 nay đối xử với người bản địa mở rộng như opt-in, mà là tốt hơn nhiều (vì người bản xứ không được mở rộng theo mặc định).

+0

B T, đây là những cũ - và chủ yếu là hợp lệ - đối số chống lại việc sửa đổi các đối tượng lưu trữ trong trình duyệt và nguyên mẫu gốc. Các nhà phát triển của Sugar là rất nhiều nhận thức về những vấn đề này, và Sugar được thiết kế với sự an toàn chống lại chúng trong tâm trí. http://sugarjs.com/native –

+0

Điều đó đang được nói, tôi sẽ nói rằng việc sử dụng sugar.js trong thư viện vẫn không thể tránh khỏi. Nhưng tôi thấy không có lý do gì để không sử dụng nó trong các ứng dụng, và trong thực tế, nhóm của tôi đã sử dụng nó trên các ứng dụng lớn, thường xuyên được sửa đổi trong vài năm để có hiệu quả tuyệt vời. Cho đến nay chúng tôi đã gặp chính xác một vấn đề, và nó là rõ ràng và đơn giản để giải quyết (nó được gây ra bởi một phiên bản sau đó ba tuổi của Sugar, chúng tôi chỉ cần cập nhật nó.) –

+0

Thậm chí nếu bạn đang sử dụng nó chỉ trong các ứng dụng của bạn, nó rất có thể (tôi có thể nói có khả năng?) rằng nó sẽ tương tác kém với một số mã ngẫu nhiên mà * bạn * đã viết hoặc một số mã ngẫu nhiên mà bạn đã nhập. Tôi có nghĩa là không bao giờ bỏ qua sugar.js - tôi đã gặp vấn đề với nó nhiều lần, đó là lý do tại sao tôi đã viết câu trả lời này ngay từ đầu. Các nhà phát triển của đường chắc chắn là như vậy nhận thức được vấn đề mà ông dành một không gian toàn bộ trên trang web để dập tắt các rabble. Thật không may bạn * không thể * làm cho sugar.js an toàn. API chỉ đơn giản là không an toàn trong javascript - không nói nó có thể bằng các ngôn ngữ khác –

Các vấn đề liên quan