javascript - 具有路由分离的 Node.js 变量作用域

标签 javascript node.js mongodb variables scope

我的路线是在外部文件夹中定义的

./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/

相关文章:

javascript - Node 数组范围问题

mongodb - 为长 mongodb 查询设置低优先级

mongodb - 在一个查询中计算和匹配相关文档

javascript - 在raphael js中缩放/拖动矩形

javascript - 如何将一个 div 覆盖在一个 img 上,并在鼠标悬停时显示另一个 div?

node.js - 本地存储和 session 之间的区别

node.js - 最小工作 polymer 示例

node.js - connect/expressjs 中的 "signed"cookie 是什么?

mongodb - MongoDB支持女孩的getDirtyPropertyNames和getPersistentValue吗?

javascript - 为什么 if 语句不起作用并使用显示 : none? 使我的元素消失