我使用以下代码并且工作正常,这是server.js
function start() {
server.listen(app.get('port'), function (err) {
if (err) {
console.error(err);
} else {
pr.preProcess();
console.log('server Listening on port : ' + app.get('port'));
}
proxy.web(server);
});
}
这是Im导出的模块
module.exports = function (params) {
Loader.load(params.loadFolder);
if (_.isEmpty(params)) {
start();
} else {
start();
Loader.loadFolder(params.loadFolder);
}
return {
start: start,
pluginLoader: pluginLoader.loadFolderFromPath
}
}();
此module.exports使用() IIFE(在导出结束时)使其工作, 并且我想要避免它,有一种更简洁的方法可以在没有括号的情况下做到这一点吗?
答案 0 :(得分:0)
关闭()
,调用导入它的函数。:
module.exports = function (params) {
Loader.load(params.loadFolder);
if (_.isEmpty(params)) {
start();
} else {
start();
Loader.loadFolder(params.loadFolder);
}
return {
start: start,
pluginLoader: pluginLoader.loadFolderFromPath
}
}; // take off ()
每当你导入/需要这个函数时,把它们重新打开以获得结果。
答案 1 :(得分:0)
重写为函数声明/使用function
作为语句
module.exports = buildLoader();
function buildLoader(params) {
Loader.load(params.loadFolder); // are you sure you wanted to do this twice? (cf. else)
if (_.isEmpty(params)) {
start();
} else {
start();
Loader.loadFolder(params.loadFolder);
}
return {
start: start,
pluginLoader: pluginLoader.loadFolderFromPath
};
}