Javascript express js app.get回调函数
嗨,我对get route函数的语法感到困惑,似乎有两个版本 下面是一些示例代码 第一个:Javascript express js app.get回调函数,javascript,express,get,Javascript,Express,Get,嗨,我对get route函数的语法感到困惑,似乎有两个版本 下面是一些示例代码 第一个: app.get('/users', function(req,res){ ... }); 第二个: app.get('users/:name', function(req,res,next){ ... if(users[req.params.name]) .... else next() }); 我不知道第二个函数中的下一个函数是什
app.get('/users', function(req,res){
...
});
第二个:
app.get('users/:name', function(req,res,next){
...
if(users[req.params.name])
....
else
next()
});
我不知道第二个函数中的下一个函数是什么。为什么在第一条中没有必要
谢谢请将其备份一点,并将express视为一个中间件堆栈。从字面上说,是一堆 你有一系列的
应用程序。使用,应用程序。获取,和应用程序。发布调用。它们一起形成一条链条。当请求传入时,express会找出哪些中间件函数与URL模式匹配,并调用第一个函数以及对下一个函数的引用。这就是如何链接独立的中间件对象
例如,有一个中间件解析查询字符串并将其作为对象存储在req.query
中。有一个中间件可以解析Cookie
头并创建Cookie对象。有一个中间件提供访问日志记录。同样,它们作为一条链连接在一起。如果中间件功能是独立的,则它们完成工作,然后通过调用next()
将控制权传递给链中的下一个链接
路线不必使用next的原因是因为路线通常是链的末端。走完一条路线后就没什么可做的了。我的回答对你有帮助吗?我能进一步澄清一下吗?是的,这很有帮助,谢谢
app.use(express.logger();
app.use(express.responseTime());
app.use(express.compress());
app.use(express.json());
app.use(express.urlencoded());
app.use(express.cookieParser());
app.use(express.session());
app.use(i18n.handle);
app.use(app.router);