我有3个节点文件:
// run.js
require('./configurations/modules');
require('./configurations/application');
// modules.js
var express = module.exports.express = require('express');
var app = module.exports.app = express.createServer();
// app.js
app.configure(...)
Run.js需要两个文件,需要模块并创建变量的modules.js,以及应该使用该变量的app.js。但我在app.js上收到错误导致app未定义。
有没有办法让这成为可能?
答案 0 :(得分:8)
模块中声明的所有内容都是该模块的本地内容,除非将其导出。
可以从引用它的其他模块访问一个模块中的导出对象。
$ cat run.js
require('./configurations/modules');
require('./configurations/application');
$ cat configurations/modules.js
exports.somevariable = {
someproperty: 'first property'
};
$ cat configurations/application.js
var modules = require('./modules');
modules.somevariable.something = 'second property';
console.log(modules.somevariable);
$ node run.js
{ someproperty: 'first property',
something: 'second property' }
答案 1 :(得分:0)
看起来你在modules.js中定义变量,但试图在app.js中引用它。你需要在app.js中有另一个要求:
// app.js
var application = require('./path/to/modules'),
app = application.app;
app.configure(...);