我们可以在 NodeJS 中重用导出的函数吗?



我的.js文件中有这个:

exports.generate = function(details) {
// bunch of code
// returns Promise
}
exports.save = function(details){
exports.generate(details)
.then(function(id){
//save in db
})
}

可以使用这样的导出函数吗?还是有更好的方法..?

这取决于您是否希望模块的使用者能够通过覆盖exports.generate来影响模块的行为(例如require('foo').generate = function() {...}(。

如果您不希望用户能够以这种方式影响它,那么您最好的选择是拉出generate()函数并命名它,然后将其导出并在save()中直接按名称使用该函数:

function generate(details) {
// ...
}
exports.generate = generate;
exports.save = function(details) {
generate(details).then(function(id) {
// ...
});
};

否则,如果您确实希望允许用户覆盖generate()功能,那么您当前正在执行的操作就可以了。

var _this=this;
exports.save = function(details) {
_this.generate(details) ...
};

相关内容

  • 没有找到相关文章

最新更新