javascript - express app和router的区别
本文介绍了javascript - express app和router的区别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
var app = express();
var router = express.Router();
以上二者的区别是什么,什么时候用哪个最合适
解决方案
区别看下面的例子:
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
路由的逻辑已经被移动到自己的文件中,所以它的 GET
和 POST
处理程序不会混乱 app.js
。
现在,你可以独立地处理对 /dog
的任何请求的逻辑,而不用担心它将如何影响猫 /birds
。
如果你具有与所有三条路由相关的逻辑(Express
中称为中间件),则可以将其放在 app.use(...)
调用上方的 app.js
中。
如果你有逻辑仅与其中一条路线(/dog
)相关,那么你只将它放在该路由的文件中。
以上回答,来源于Stack Overflow
Differences between express.Router and app.get?
共同学习,给赞更好~~~
至于什么时候使用,其实上面的例子已经解释了。
如果代码非常简单,完全可以 app.get('/',....)
,如果路由比较复杂,使用 express.Router()
更合适。
这篇关于javascript - express app和router的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文