我的.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) ...
};