又来折腾nodejs了。
我写了一个简单的模块。提供一个计算器相加的功能,我的调用代码形如:
var c = require("./calculator");
console.log(c.add(4,5));
reqiure完之后可以立即调用,这个模块calculator.js怎么写呢?
exports.add = function(a,b){
return a+b;
}
给exports.add赋值解决了我的问题,但是我想如果我需要添加一个方法,这个就头疼了,比如:
var Calculator={
add:function (a,b) {
return a+b;
}
};
exports = Calculator;
考虑到Calculator里面不会只有一个方法,所以我直接用了exports= Calculator 。但是,很遗憾,不能,require得到的是一个{}对象,但是改成module.exports就可以了:
var Calculator={
add:function (a,b) {
return a+b;
}
};
module.exports = Calculator;//变成module.exports
变成module.exports 之后达到我想要的效果了。
总结说就是如果需要直接给exports赋值的话,可以通过module.export来实现。
关于这里面的原理以及实现,可以参照文章:
module.exports还是exports?http://zihua.li/2012/03/use-module-exports-or-exports-in-node/