Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript express js app.get回调函数_Javascript_Express_Get - Fatal编程技术网

Javascript express js app.get回调函数

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() }); 我不知道第二个函数中的下一个函数是什

嗨,我对get route函数的语法感到困惑,似乎有两个版本 下面是一些示例代码

第一个:

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