首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >app.all('*')和app.use('/')之间的差异

app.all('*')和app.use('/')之间的差异
EN

Stack Overflow用户
提问于 2013-01-03 01:00:04
回答 2查看 67.8K关注 0票数 133

在Node.js上运行的Express.js中,app.all("*", … )app.use("/", … )有什么有用的区别吗?

EN

回答 2

Stack Overflow用户

发布于 2013-01-03 01:06:43

是的,当使用任何类型的请求方法(POST、GET、PUT或DELETE)请求特定URI时,将调用app.all()

另一方面,app.use()用于您可能拥有的任何中间件,它挂载到路径前缀上,并将在请求该路由下的URI时随时被调用。

这是app.allapp.use的文档。

票数 5
EN

Stack Overflow用户

发布于 2020-05-04 01:11:40

主要有两点不同:

模式匹配(Palani给出的答案)在使用app.use加载的中间件的函数体中,next(route)不起作用。文档中的链接说明了这一点:

代码语言:javascript
运行
复制
NOTE: next('route') will work only in middleware functions that were loaded by using the app.METHOD() or router.METHOD() functions.

链接:http://expressjs.com/en/guide/using-middleware.html

从以下示例可以看出next('route')的工作效果:

代码语言:javascript
运行
复制
app.get('/',
(req,res,next)=>{console.log("1");
next(route); //The code here skips ALL the following middlewares
}
(req,res,next)=>{next();}, //skipped
(req,res,next)=>{next();}  //skipped
);

//Not skipped
app.get('/',function(req,res,next){console.log("2");next();});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14125997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档