我试图实现的是创建一个包含多个功能的模块。

module.js:

module.exports = function(firstParam) { console.log("You did it"); },
module.exports = function(secondParam) { console.log("Yes you did it"); }, 
// This may contain more functions

main.js:

var foo = require('module.js')(firstParam);
var bar = require('module.js')(secondParam);

我的问题是,firstParam是一个对象类型和secondParam是一个URL字符串,但当我有它总是抱怨类型是错误的。

我如何声明多个模块。在这种情况下出口?


当前回答

如果文件是用ES6导出的,你可以写:

module.exports = {
  ...require('./foo'),
  ...require('./bar'),
};

其他回答

在你的节点模块中,你可以导出各种函数,比如:

Module.exports.eat =吃; 函数eat() { …… 返回* *的东西; }; Module.exports.sleep =睡眠; 函数sleep() { …… 返回* *的东西; };

注意,导出函数时并没有调用它们。 然后,在要求模块时,您可以要求为:-

Const task = require(__dirname + "/task.js"); //task是文件的名称 Let eat = task.eat(); Let sleep = task.sleep();

module.exports = (function () {
    'use strict';

    var foo = function () {
        return {
            public_method: function () {}
        };
    };

    var bar = function () {
        return {
            public_method: function () {}
        };
    };

    return {
        module_a: foo,
        module_b: bar
    };
}());

module.js:

const foo = function(<params>) { ... }
const bar = function(<params>) { ... } 

//export modules
module.exports = {
    foo,
    bar 
}

main.js:

// import modules
var { foo, bar } = require('module');

// pass your parameters
var f1 = foo(<params>);
var f2 = bar(<params>);

你可以像我下面做的那样…对于函数和箭头函数:

greet.js:

函数greetFromGreet() { Console.log ("hello from greet module…"); } const greetVar = () => { Console.log("将var视为箭头fn/…"); }; 模块。exports = {greetVar, greetFromGreet};// ----多个模块导出…

// -----------------------------------------------

app.js:

const greetFromGreets = require("./greet");

greetFromGreets.greetFromGreet();
greetFromGreets.greetVar();

// -----------------------------------------------

如果文件是用ES6导出的,你可以写:

module.exports = {
  ...require('./foo'),
  ...require('./bar'),
};