如何在Express.js中的模块中访问req和res

Rak*_*aks 2 connect node.js express

使用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);
Run Code Online (Sandbox Code Playgroud)

我想要的是登录处理代码写在一个名为login.js的单独模块/文件中,然后问题是如何在login.js中访问响应对象.我认为以下代码不起作用,因为req和res的类型没有解决.

exports.auth = function(req, res) {
    res.send('Testing');
}
Run Code Online (Sandbox Code Playgroud)

因此,当我用节点example.js启动服务器时,我收到错误

'无法调用方法发送未定义'

Request和REsponse对象如何沿模块传递

Jam*_*ory 5

这应该工作:

app.get('/login', login.auth);
Run Code Online (Sandbox Code Playgroud)

您的示例尝试将login.auth函数的返回值作为请求的get处理程序传递.以上代替将login.auth函数本身作为处理程序传递.