express app和router的区别

发布于 2022-09-05 08:24:14 字数 132 浏览 23 评论 0

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


以上二者的区别是什么,什么时候用哪个最合适

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黑寡妇 2022-09-12 08:24:14

区别看下面的例子:

app.js

var express = require('express'),
    dogs    = require('./routes/dogs'),
    cats    = require('./routes/cats'),
    birds   = require('./routes/birds');

var app = express();

app.use('/dogs',  dogs);
app.use('/cats',  cats);
app.use('/birds', birds);

app.listen(3000);

dogs.js

var express = require('express');

var router = express.Router();

router.get('/', function(req, res) {
    res.send('GET handler for /dogs route.');
});

router.post('/', function(req, res) {
    res.send('POST handler for /dogs route.');
});

module.exports = router;

app.js 中调用 express() 时,返回一个 app 对象。
app 对象可以看作创建了一个 Express 应用程序。
而当 express.Router() 被调用时,返回稍微不同的“迷你应用”。

“迷你应用程序”背后的想法是,应用程序中的不同路线可能变得相当复杂,你可以从将该逻辑移动到单独的文件中获益。

在上面这个简单的例子中,/dogs 路由的逻辑已经被移动到自己的文件中,所以它的 GETPOST 处理程序不会混乱 app.js

现在,你可以独立地处理对 /dog 的任何请求的逻辑,而不用担心它将如何影响猫 /birds

如果你具有与所有三条路由相关的逻辑(Express 中称为中间件),则可以将其放在 app.use(...) 调用上方的 app.js 中。

如果你有逻辑仅与其中一条路线(/dog)相关,那么你只将它放在该路由的文件中。

以上回答,来源于Stack Overflow
Differences between express.Router and app.get?
共同学习,给赞更好~~~

至于什么时候使用,其实上面的例子已经解释了。

如果代码非常简单,完全可以 app.get('/',....),如果路由比较复杂,使用 express.Router() 更合适。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文