Express handler 函数参数执行
Express handler function parameter execution
快速路线设置如下
var users = require('../../app/controllers/users.server.controller');
// Set up the 'signout' route
app.get('/signout', users.signout);
但是,由于括号不存在,这意味着函数 users.signout 正在传递而不是执行?
github上的文件可以找到here
users.signout 函数如下所示
// Create a new controller method for signing out
exports.signout = function(req, res) {
// Use the Passport 'logout' method to logout
req.logout();
// Redirect the user back to the main application page
res.redirect('/');
};
github上的文件可以找到here
为什么users.signout被执行?它是如何传递 req 和 res 参数的?
当你使用
app.get('/signout', users.signout);
Express.js 基本上在内部存储给定函数 users.signout
,并保持与 /signout
路径的关联。
当在该路由上发起请求时,Express.js会获取对应的存储函数并调用,大致如下形式:
// `storedFunction` corresponds to your `users.signout` function
storedFunction(expressReq, expressRes, expressNextCallback);
如果你要在调用中调用你的users.signout
函数,即
app.get('/signout', users.signout());
您将无法获取 req
和 res
参数,并且 users.signout
函数实际上会立即执行,这意味着 app.get
函数实际上会接收你函数的结果。
您可以阅读更多相关内容 in the documentation。希望对您有所帮助!
express app.get
函数将一个字符串作为第一个参数,将一个函数作为第二个参数。当应用程序侦听路由并找到路由 '/signout'
时,它会立即执行 您在第二个参数中提供的函数传递给它 req
和 res
对象。
该函数在声明 app.get('/signout', users.signout);
.
时未执行
相同的代码可以写成(假设您正在使用 Passport 以便能够使用 logout
方法):
app.get('/signout', function(req, res) {
// Use the Passport 'logout' method to logout
req.logout();
// Redirect the user back to the main application page
res.redirect('/');
});
它实际上是一个函数,传递给app.get
的第二个参数,但在同一个地方明确声明了它的逻辑。
快速路线设置如下
var users = require('../../app/controllers/users.server.controller');
// Set up the 'signout' route
app.get('/signout', users.signout);
但是,由于括号不存在,这意味着函数 users.signout 正在传递而不是执行?
github上的文件可以找到here
users.signout 函数如下所示
// Create a new controller method for signing out
exports.signout = function(req, res) {
// Use the Passport 'logout' method to logout
req.logout();
// Redirect the user back to the main application page
res.redirect('/');
};
github上的文件可以找到here
为什么users.signout被执行?它是如何传递 req 和 res 参数的?
当你使用
app.get('/signout', users.signout);
Express.js 基本上在内部存储给定函数 users.signout
,并保持与 /signout
路径的关联。
当在该路由上发起请求时,Express.js会获取对应的存储函数并调用,大致如下形式:
// `storedFunction` corresponds to your `users.signout` function
storedFunction(expressReq, expressRes, expressNextCallback);
如果你要在调用中调用你的users.signout
函数,即
app.get('/signout', users.signout());
您将无法获取 req
和 res
参数,并且 users.signout
函数实际上会立即执行,这意味着 app.get
函数实际上会接收你函数的结果。
您可以阅读更多相关内容 in the documentation。希望对您有所帮助!
express app.get
函数将一个字符串作为第一个参数,将一个函数作为第二个参数。当应用程序侦听路由并找到路由 '/signout'
时,它会立即执行 您在第二个参数中提供的函数传递给它 req
和 res
对象。
该函数在声明 app.get('/signout', users.signout);
.
相同的代码可以写成(假设您正在使用 Passport 以便能够使用 logout
方法):
app.get('/signout', function(req, res) {
// Use the Passport 'logout' method to logout
req.logout();
// Redirect the user back to the main application page
res.redirect('/');
});
它实际上是一个函数,传递给app.get
的第二个参数,但在同一个地方明确声明了它的逻辑。