gpt4 book ai didi

javascript - 快速处理函数参数执行

转载 作者:太空宇宙 更新时间:2023-11-04 02:57:35 24 4
gpt4 key购买 nike

快速路线设置如下

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());

您将无法获取 reqres 参数,并且 users.signout 函数实际上会立即执行,这意味着 app.get 函数实际上会接收函数的结果

您可以阅读有关此的更多信息 in the documentation 。希望对您有帮助!

关于javascript - 快速处理函数参数执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34158327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com