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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在Express中的多個(gè)文件中包含路由處理程序?

如何在Express中的多個(gè)文件中包含路由處理程序?

波斯汪 2019-09-18 13:46:42
在我的NodeJS express應(yīng)用程序中,我有app.js一些常見的路由。然后在一個(gè)wf.js文件中我想定義更多的路線。如何app.js識(shí)別wf.js文件中定義的其他路由處理程序?一個(gè)簡(jiǎn)單的要求似乎不起作用。
查看完整描述

3 回答

?
莫回?zé)o

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

在@ShadowCloud的例子的基礎(chǔ)上,我能夠動(dòng)態(tài)地包含子目錄中的所有路由。


路線/ index.js


var fs = require('fs');


module.exports = function(app){

    fs.readdirSync(__dirname).forEach(function(file) {

        if (file == "index.js") return;

        var name = file.substr(0, file.indexOf('.'));

        require('./' + name)(app);

    });

}

然后將路由文件放在routes目錄中,如下所示:


路線/ test1.js


module.exports = function(app){


    app.get('/test1/', function(req, res){

        //...

    });


    //other routes..

}

重復(fù)那個(gè)我需要的次數(shù),然后最終在app.js放置


require('./routes')(app);


查看完整回答
反對(duì) 回復(fù) 2019-09-18
?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊

即使這是一個(gè)較老的問題,我在這里偶然發(fā)現(xiàn)了尋找類似問題的解決方案。在嘗試了一些解決方案之后,我最終走向了一個(gè)不同的方向,并認(rèn)為我會(huì)為其他任何人在這里添加我的解決方案。


在express 4.x中,您可以獲取路由器對(duì)象的實(shí)例并導(dǎo)入包含更多路由的另一個(gè)文件。您甚至可以遞歸執(zhí)行此操作,以便您的路由導(dǎo)入其他路由,從而允許您創(chuàng)建易于維護(hù)的URL路徑。例如,如果我的'/ tests'端點(diǎn)已經(jīng)有一個(gè)單獨(dú)的路由文件,并且想為'/ tests / automated'添加一組新的路由,我可能想要將這些'/ automated'路由分解為另一個(gè)文件到保持我的'/ test'文件小而易于管理。它還允許您通過(guò)URL路徑將路由邏輯分組,這非常方便。


./app.js的內(nèi)容:


var express = require('express'),

    app = express();


var testRoutes = require('./routes/tests');


// Import my test routes into the path '/test'

app.use('/tests', testRoutes);

./routes/tests.js的內(nèi)容


var express = require('express'),

    router = express.Router();


var automatedRoutes = require('./testRoutes/automated');


router

  // Add a binding to handle '/test'

  .get('/', function(){

    // render the /tests view

  })


  // Import my automated routes into the path '/tests/automated'

  // This works because we're already within the '/tests' route so we're simply appending more routes to the '/tests' endpoint

  .use('/automated', automatedRoutes);


module.exports = router;

./routes/testRoutes/automated.js的內(nèi)容:


var express = require('express'),

    router = express.Router();


router

   // Add a binding for '/tests/automated/'

  .get('/', function(){

    // render the /tests/automated view

  })


module.exports = router;


查看完整回答
反對(duì) 回復(fù) 2019-09-18
  • 3 回答
  • 0 關(guān)注
  • 1083 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)