在使用express.js处理各种路由时,我想将所有路由代码封装在一个单独的模块中,但是如何跨模块访问req和res对象?请参阅下面的代码。 主文件examples.js编写如下:
var app = require('express').createServer();
var login = require('./login.js');
app.get('/login', login.auth(app.req, app.res));
app.listen(80);
我想要的是将登录处理代码编写在名为 login.js 的单独模块/文件中。那么问题是如何在 login.js 中访问响应对象?我认为以下代码将无法工作,因为 req 和 res 的类型未解析。
exports.auth = function(req, res) {
res.send('Testing');
}
因此,当我使用 Node example.js 启动服务器时,出现错误:
“无法调用未定义的发送方法”
Request 和 Response 对象是如何沿着模块传递的?
最佳答案
这应该有效:
app.get('/login', login.auth);
您的示例尝试将 login.auth
函数的返回值作为请求的获取处理程序传递。上面的代码将 login.auth
函数本身作为处理程序传递。
关于node.js - Express.js 中如何跨模块访问 req 和 res?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5702509/