Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在导出功能中替换IIFE_Javascript_Node.js - Fatal编程技术网

Javascript 如何在导出功能中替换IIFE

Javascript 如何在导出功能中替换IIFE,javascript,node.js,Javascript,Node.js,我正在使用下面的代码,它工作正常,这是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 : '

我正在使用下面的代码,它工作正常,这是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);
    });
}
这是我正在导出的模块

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使用()iLife(在导出结束时)使其工作, 如果我想避免它,有一种更干净的方法可以做到这一点,而不必在末尾使用括号?

关闭
()
,调用导入它的函数:

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

在每次导入/需要函数时,都将其放回原处以获得结果。

重新编写为函数声明/使用
函数
作为语句

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

关闭
()
,调用导入它的函数…仅供参考,这称为IIFE,立即调用的函数expression@PaulS. - 修好了,谢谢!谢谢,因为我是node.js的新手,你能提供我的内容的例子吗?谢谢!你能告诉我如何更好地导出start和pluginLoder吗?我的意思是,是否有更好的方法来编写它?我可以写3个导出,但不确定是否可以。。