使用模块require()参数的不同工作方式?

时间:2018-02-27 17:03:08

标签: javascript node.js module

如果你想将参数传递给模块,你可以这样做:

index.js

let test = require("./module.js")(something);

module.js

module.exports = (something) => {
    //Working with `something` here
};

但是如果不使用module.exports = (var) => {}

就可以这样做

更具体地说,能够在函数容器外编写代码,然后在文件末尾执行module.exports吗?

或者你能够做到这一点?

const globalSomething;

(something) => {
  globalSomething = something;
}

module.exports = heavyWorkWith(globalSomething);

如果你了解我。

1 个答案:

答案 0 :(得分:1)

您不限于传递参数的未命名函数,您可以使用命名函数

export default function myExport(something) {
   //...
}

甚至是一个班级

export default class myExport() {
    constructor(something) {
        //...
    }
}

反之,导入:

const myExport = require('./myModuleOrWhatever');
const foo = new myExport(something);

更重要的是,您可以使用匿名模块导出传递模块常量

const bar = somethingElse;
const baz = moreElse;

/*
alernatively
export default const bar = somethingElse
*/
module.exports = {
    foo: (something) => {
        //Working with `something` here
    },
    bar,
    baz,
};