我一直不明白中间件验证,谁来解析一下。

2013-10-10 09:12:25 +08:00
 coolicer
我在研究nodeclub的源码,有一个函数是这样的:

exports.auth_user = function (req, res, next) {
...
//登录时候会产生一个cookie,这里貌似会在登录完后读取那个cookie。
}

然后在app.js里面有一句这样的:

app.use(require('./controllers/sign').auth_user);

我比较在意这个方法是什么时候执行的,是不是每次请求都会执行一次?

本人菜鸟
2991 次点击
所在节点    Node.js
7 条回复
mengzhuo
2013-10-10 09:20:00 +08:00
虽然没写过nodejs,但是和Python各个框架的中间件概念应该是相同的
https://docs.djangoproject.com/en/1.2/_images/middleware.png
一图胜千言
coolicer
2013-10-10 09:36:01 +08:00
@mengzhuo 有点晕~ :)
ijse
2013-10-10 09:44:28 +08:00
你在auth_user这个middleware中打下log试下, 是每次请求都会执行的, 一般把它放在所有routes之前注册。
ijse
2013-10-10 09:45:28 +08:00
PS, express的route设计很赞的,AOP思想
lidashuang
2013-10-10 10:43:41 +08:00
每次请求都会执行一次
roricon
2013-10-10 11:05:25 +08:00
中间件嘛。当然是作为中间人存在的。存在的目的就是不判断业务逻辑,而是进行“处理-转发”的动作。如果在中间件里面再判断是否要每次都执行某个动作,那就失去中间件的意义了嘛……
coolicer
2013-10-10 11:25:06 +08:00
谢谢你们的回答
@ijse
@lidashuang
@roricon

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/85056

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX