如何在nodejs中使用sugar.js?

时间:2012-02-17 01:58:43

标签: javascript node.js sugar.js

http://sugarjs.com/

它是一个库,所以我可以直接在浏览器中加载它。它也是一个npm包,但我怎么能用它作为moudule?

在浏览器中,加载js文件会轻松更改对象,但在nodejs中工作时却不一样,我无法弄明白。

3 个答案:

答案 0 :(得分:28)

您只需安装模块:

npm install sugar

然后就像API说的那样使用它:

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);

答案 1 :(得分:8)

Sugar不用作标准的CommonJS模块,因为库的整个点是修改内置原型。您需要将它放入项目中,所有内置对象都将被扩展,您可以从那里使用它们。

编辑:自v2.0.0起,现在不再适用。原型修改现在是选择性的,因此您可以像使用导出对象的任何其他节点模块一样使用Sugar。有关更多信息,请参阅https://sugarjs.com/quickstart/

答案 2 :(得分:1)

不要使用sugar.js - 它会修改原生原型,所以一切都会使用它们 - 而不仅仅是你的模块。这样做是令人难以置信的阴险,它不是模块化的,它会在你最不期望的时候咬你。

值得再说一遍:不要使用任何修改本地原型的模块,这些模块在polyfilling的(非常合理的)上下文之外。不要使用Sugar.js。特别是在node.js中 - 那里有一个模块系统。我个人遇到了修改原生原型的问题。奇怪的事情可能发生在你的代码的深处。

以下是有关修改原生对象的原因的更多信息:

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

更新:听起来像Sugar v2.0.0现在将扩展本机视为选择加入,这要好得多(因为默认情况下不会扩展本机)。