对 express get 方法的异常调用。应该是错误的,但运行良好
Unusual call to express get method. Should be wrong but runs well
Express 的 get 方法只记录了两种调用,但是在 passportjs.org 的文档中显示了第三种调用。
我正在学习使用 google 的 Oauth 2.0 策略实施 SSO。在此期间,我遇到了 app.get 方法的不寻常用法。这样的函数调用在 express 的文档中没有定义。
我参考了以下两页,以确保我没有弄错:
Express js文档只有两种调用:
1. app.get(name)
2. app.get(path, callback [, callback ...])
现在,passportjs.org 中的调用似乎使用了第二种形式,但请注意第二个参数 (passport.authenticate) 实际上是函数调用,而不是函数定义(即回调)因为它应该根据上面的#2:
app.get('/auth/google',
passport.authenticate('google', { scope: 'https://www.google.com/m8/feeds' });
我预计会出现 运行 时间错误,因为对 app.get 的调用与任何已记录的函数调用类型都不匹配。但是,函数调用 运行 很好并完成了预期的任务。怎么样?
来自 Passport
npm 页面
Passport is Express-compatible authentication middleware for Node.js
它的工作方式是 passport
公开与表达期望的 callback
兼容的方法。
表达期望的最简单的callback
signature是:
(req, res) => { /* something */ }
因此,returns 预期签名 的另一个函数的任何函数都可以作为中间件传递。
例如
const app = express()
function myFunc(some) {
return (req, res) => {
res.json(some);
}
}
app.get('/', myFunc('something'));
*Express文档在上面的linklink可配置中间件下也说明了类似的中间件功能
Express 的 get 方法只记录了两种调用,但是在 passportjs.org 的文档中显示了第三种调用。
我正在学习使用 google 的 Oauth 2.0 策略实施 SSO。在此期间,我遇到了 app.get 方法的不寻常用法。这样的函数调用在 express 的文档中没有定义。
我参考了以下两页,以确保我没有弄错:
Express js文档只有两种调用:
1. app.get(name)
2. app.get(path, callback [, callback ...])
现在,passportjs.org 中的调用似乎使用了第二种形式,但请注意第二个参数 (passport.authenticate) 实际上是函数调用,而不是函数定义(即回调)因为它应该根据上面的#2:
app.get('/auth/google',
passport.authenticate('google', { scope: 'https://www.google.com/m8/feeds' });
我预计会出现 运行 时间错误,因为对 app.get 的调用与任何已记录的函数调用类型都不匹配。但是,函数调用 运行 很好并完成了预期的任务。怎么样?
来自 Passport
npm 页面
Passport is Express-compatible authentication middleware for Node.js
它的工作方式是 passport
公开与表达期望的 callback
兼容的方法。
表达期望的最简单的callback
signature是:
(req, res) => { /* something */ }
因此,returns 预期签名 的另一个函数的任何函数都可以作为中间件传递。
例如
const app = express()
function myFunc(some) {
return (req, res) => {
res.json(some);
}
}
app.get('/', myFunc('something'));
*Express文档在上面的linklink可配置中间件下也说明了类似的中间件功能