Node.js模块导出

时间:2014-05-08 14:21:58

标签: javascript node.js module export

如何导出这些变量,以便以后可以在不同的js文件中使用它们?

以下示例仅适用于1个变量

var app = module.exports = express();

但我想传递更多变量,所以我做了这个

var app = express();

var connection = mysql.createConnection({
    host     : 'localhost',
    user     : 'root',
    password : ''
});

module.exports.app = app;
module.exports.connection = connection;

没有成功

2 个答案:

答案 0 :(得分:1)

这是因为首先,您的模块是应用程序。我的意思是,如果你在第一种情况下有B那样:

app = require('A') // = express()

而第二次是:

app = require('A') // = {app: express(), connection: connection}

答案 1 :(得分:1)

答案在Node.js Modules documentation中:

您可以将要导出的值分配给 module.exports 属性,也可以为其指定对象。

<强> mymodule.js:

var app = module.exports = express();

或者:

var app = express();
module.exports = {
    "app": app,
    "otherproperties": "you want to export"
}

要求您自己创建的模块并且没有放置 node_modules 目录,您可以提供绝对路径或相对路径。

致电模块:

var app = require("/home/user/myapp/mymodule.js"); // absolute path
app; // access returned value of express() function, created in *mymodule.js* 

或者:

var app = require("./mymodule.js"); // path relative to the calling module
// In this case the calling module is in the same directory as *mymodule.js*
app.app; // access returned value of express() function, created in *mymodule.js*

附录:即使 modules 库/模块已被锁定,我还是建议您阅读文档。在查找您不熟悉的网络术语时,可以在两个晚上阅读整个文档。它会在短期内为您节省大量时间!