我的路线是在外部文件夹中定义的
./routes
这是我在 server.js 文件中定义路由的方式
app.get('/', routes.index);
app.post('/validation', register.valid);
register.valid模块,最初是写在
./routes/validation.js
负责创建新的用户帐户并将其注册到数据库(MongoDB)中。
如何从validation.js中的server.js访问对象?首先,我认为在定义路由之前声明对象可以解决这个问题,但实际上这似乎不是解决方案。
最佳答案
我假设您当前的代码已经可以工作(即,您收到了发布的数据),但您需要从validation.js访问另一个对象。
如果你的代码有效,那么你的 server.js 中可能有这一行:
var register = require('./routes/validation');
并且您需要访问验证模块中的变量 obj 。您可以在验证模块内添加一个函数:
var foo;
exports.configure = function(obj) {
foo = obj;
}
导出意味着变量configure
将可供“需要”验证模块的模块访问。您可以通过这种方式在 server.js
模块中执行以下操作:
register.configure(obj);
app.post('/validation', register.valid);
其具体配置取决于您实际想要完成的任务。例如,有时,将数据库对象存储在全局变量中是很好的。
关于javascript - 具有路由分离的 Node.js 变量作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21224346/