第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

Node.js / Express.js-app.router如何工作?

Node.js / Express.js-app.router如何工作?

一只斗牛犬 2019-09-27 16:44:14
在我提出app.router疑問之前,我至少應該解釋一下使用中間件時發(fā)生的事情。要使用中間件,使用的功能是app.use()。當執(zhí)行中間件時,它將使用next()或使其調(diào)用下一個中間件,從而不再調(diào)用任何中間件。這意味著我放置中間件調(diào)用的順序很重要,因為某些中間件依賴于其他中間件,而接近末尾的某些中間件甚至可能不會被調(diào)用。今天,我正在開發(fā)應用程序,并在后臺運行服務器。我想進行一些更改并刷新頁面,然后立即查看更改。具體來說,我正在更改布局。我無法使它正常工作,所以我在Stack Overflow中搜索了答案,并找到了這個問題。它說要確保它express.static()在下面require('stylus')。但是,當我查看該OP的代碼時,我發(fā)現(xiàn)他app.router在中間件調(diào)用的最后就接到了他的電話,而我試圖弄清楚為什么會這樣。當我制作Express.js應用程序(版本3.0.0rc4)時,我使用了命令,express app --sessions --css stylus并且在我的app.js文件中,app.router在express.static()和require('stylus')調(diào)用上方都設置了代碼。如此看來,如果它已經(jīng)以這種方式設置,那么它應該保持這種方式。重新排列代碼以便可以看到手寫筆更改后,它看起來像這樣:app.configure(function(){  //app.set() calls  //app.use() calls  //...  app.use(app.router);  app.use(require('stylus').middleware(__dirname + '/public'));  app.use(express.static(__dirname + '/public', {maxAge: 31557600000}));});app.get('/', routes.index);app.get('/test', function(req, res){  res.send('Test');});因此,我決定第一步就是要弄清楚為什么甚至app.router在我的代碼中也很重要。因此我將其注釋掉,啟動了我的應用程序并導航至/。它顯示我的索引頁面很好。嗯,也許是可行的,因為我正在從我的路由文件(routes.index)中導出路由。因此,接下來我導航到/test它,并在屏幕上顯示Test。哈哈,好吧,我不知道該怎么辦app.router。無論它是否包含在我的代碼中,我的路由都可以。因此,我肯定會缺少一些東西。所以這是我的問題:有人可以解釋一下app.router它的作用,重要性以及在中間件調(diào)用中的位置嗎?如果得到有關的簡要說明,那也很好express.static()。據(jù)我所知,express.static()是我的信息的緩存,如果應用程序找不到請求的頁面,它將檢查緩存以查看其是否存在。
查看完整描述

3 回答

?
當年話下

TA貢獻1890條經(jīng)驗 獲得超9個贊

在快速版本4中,我們可以通過以下方式輕松定義路由:


server.js:


const express = require('express');

const app = express();

const route = require('./route');


app.use('/route', route);

// here we pass in the imported route object


app.listen(3000, () => console.log('Example app listening on port 3000!'));

route.js:


const express = require('express');

const router = express.Router();


router.get('/specialRoute', function (req, res, next) {

     // route is now http://localhost:3000/route/specialRoute

});


router.get('/', function (req, res, next) {

    // route is now http://localhost:3000/route

});


module.exports = router;

在其中,server.js我們導入了route.js文件的路由器對象,并通過以下方式將其應用到server.js:


app.use('/route', route);

現(xiàn)在,中的所有路由route.js都具有以下基本URL:


HTTP://本地主機:3000 /路由


為什么采用這種方法:

采用這種方法的主要優(yōu)點是現(xiàn)在我們的應用程序更加模塊化?,F(xiàn)在,可以將特定路由的所有路由處理程序放入不同的文件中,這使得所有內(nèi)容都更易于維護和查找。


查看完整回答
反對 回復 2019-09-27
  • 3 回答
  • 0 關注
  • 618 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號