首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Express中,app.router到底是做什么的?

在Express中,app.router到底是做什么的?
EN

Stack Overflow用户
提问于 2012-11-06 23:48:25
回答 4查看 54.7K关注 0票数 28

当我使用Express二进制文件创建示例express应用程序时,引导程序代码包含以下行:

代码语言:javascript
运行
复制
...

var app = express();
...
app.use(app.router);

我没有找到太多关于app.router的信息。我认为这是处理路由的中间件(app.get()、app.post()等)。规则,但是当我删除app.use(app.router);行时,这些规则也会被执行。

那么这个中间件的确切用途是什么呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-07 00:29:55

这来自Express2.x指南http://expressjs.com/2x/guide.html

“注意app.router的用法,它可以(可选地)用于挂载应用程序路由,否则第一次调用app.get()、app.post()等将挂载路由。”

我怀疑这也适用于Express 3.x。

票数 17
EN

Stack Overflow用户

发布于 2013-07-12 06:36:46

在Express3.x中,app.router是connect middleware router的增强版本。正如赫克托所说,这是Express处理注册到app.getapp.post等的请求处理程序的地方。

如果您没有显式调用app.use(app.router),那么express将在您第一次使用app.get(...)app.post(...)等时隐式调用它。但是,您可能希望显式地调用它,因为这样您就可以选择所有中间件的顺序。

代码语言:javascript
运行
复制
app.use(express.favicon());
app.use(express.bodyParser());
app.use(express.methodOverride());
// app.get, app.post, etc called before static folder
app.use(app.router); 
app.use(express.static(path.join(__dirname, 'public')));

查看如何在Express3源here中检索路由器。

请注意Express 4 doesn't need app.router

票数 38
EN

Stack Overflow用户

发布于 2020-07-15 01:56:30

在我的例子中,我没有导出模块

代码语言:javascript
运行
复制
module.exports = router;
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13254549

复制
相关文章

相似问题

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