亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 979 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號