node.js – express.Router和app.get之间的区别?

我从NodeJS和Express 4开始,我有点困惑。我一直在读快递网站,但不能看到_when使用路由处理程序或什么时候使用express.Router。

正如我可以看到,如果我想显示一个页面或什么时候用户点击/显示为例,我应该使用:

var express = require('express')    
var app = express()    
app.get("/show",someFunction)

在开始,我认为这是老,对express3,是正确的或这是express4的方式吗?

如果这是在express4中做的方式,什么是express.Router用于?

我读了几乎相同的例子,但使用express.Router:

var express = require('express');
var router = express.Router();
router.get("/show",someFunction)

那么,这两个例子有什么区别?

如果我只想做一个简单的测试网站,我应该使用哪一个?

解决方法

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('/',res) {
    res.send('POST handler for /dogs route.');
});

module.exports = router;

当在app.js中调用express()时,返回一个app对象。将应用程序对象视为Express应用程序。

当express.Router()被调用时,返回一个稍微不同的“迷你应用程序”。 “迷你应用程序”背后的想法是,你的应用程序中的不同路线可能变得相当复杂,你会从将该逻辑移动到一个单独的文件中受益。

在上面这个简单的例子中,/ dogs路由的逻辑已经被移动到它自己的文件,所以它的GET和POST处理程序不会混乱app.js。现在你可以独立地处理任何请求/狗的逻辑,不担心它将如何影响/猫和/鸟。

如果你有与所有三个路由相关的逻辑(在Express中称为中间件),你可以把它放在app.use(…)调用之上的app.js中。如果你的逻辑只适用于其中一个路由(/ dogs),那么你只将它放在该路由的文件中。

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...