express.Router和app.get之间的区别?
我从NodeJS和Express 4开始,我有些困惑。我正在阅读Express网站,但看不到 何时
使用路由处理程序或何时使用express.Router
。
如我所见,例如,如果我想在用户点击时显示页面或其他内容,/show
则应使用:
var express = require('express') var app = express()
app.get("/show", someFunction)
一开始,我认为这很旧(对于Express 3)。是这样吗,还是Express 4也是如此?
如果这是在Express 4中实现的方式,它的express.Router
用途是什么?
我读了几乎与上面相同的示例,但是使用了express.Router
:
var express = require('express');var router = express.Router();
router.get("/show", someFunction)
那么,两个示例之间有什么区别?
如果我只想创建一个简单的测试网站,应该使用哪一个?
回答:
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);
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;
当var app = express()
被调用时,会返回一个应用对象。将此视为 。
当var router = express.Router()
被调用时,一个稍微不同的 返回。 背后的想法是,
中的每条路线都可能变得非常复杂,并且将所有代码移入一个单独的文件中将使您受益。每个文件的路由器都变成一个 ,其结构与
非常相似。
在上面的示例中, 路由的代码已移至其自己的文件中,因此不会干扰 。 和 的代码在它们自己的文件中的结构类似。通过将此代码分成三个 ,您可以独立处理每个逻辑
的逻辑,而不必担心它将如何影响其他两个逻辑 。
如果您具有与所有这三种路由有关的代码(中间件),则可以在调用之前将其放在
app.use(...)
。如果您具有仅与那些路由之一相关的代码(中间件),则可以将其仅放入该路由的文件中。
以上是 express.Router和app.get之间的区别? 的全部内容, 来源链接: utcz.com/qa/412153.html