为了账号安全,请及时绑定邮箱和手机立即绑定

express app和router的区别

express app和router的区别

汪汪一只猫 2018-12-13 18:19:44
var app = express(); var router = express.Router();以上二者的区别是什么,什么时候用哪个最合适
查看完整描述

1 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

区别看下面的例子:


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() 更合适。


查看完整回答
反对 回复 2019-01-08
  • 1 回答
  • 0 关注
  • 958 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信