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

回到顶部