2016-08-03 39 views
0

自從永遠以來,我一直遠離NodeJS後端開發,原因只有一個,原因幾乎是:我幾乎所有的Express項目或者我已經被迫保持結果是一個巨大的混亂,整個網站運行在+/- 5000行的單個腳本上。如何編寫乾淨的,模塊化的express.js應用程序

以下示例來自ExpressJS hello world頁面,在這種形式下,我最終會添加越來越多的路由到app,導致大量的代碼。

var express = require('express'); 
var app = express(); 

app.get('/', function (req, res) { 
    res.send('Hello World!'); 
}); 

app.listen(3000, function() { 
    console.log('Example app listening on port 3000!'); 
}); 

似乎我無法找到,是我怎麼能採取大快遞的網站,並把它變成一個模塊化應用中,路由是可重複使用的容易可測試。如果任何人有任何想法如何做到這一點,將不勝感激。

+0

你在尋找什麼樣的答案來解決這個問題?你在這裏要求覆蓋一個大題目,比如我是否問過「你如何爲一個班級建模?」。我認爲這個問題太過於基於觀點而給出了答案。關於如何創建微服務並將其用作架構模式來創建模塊化代碼以及其他幾十種重構策略,有數百個指南。也許可以搜索更大的GitHub項目的代碼。 –

+0

從其他模塊導出這些函數,就像'UserAuthentication.js'' export.login = function(req,res){}'等等那麼第四,然後把它們放到特徵文件夾中。 –

+0

創建單獨的路由處理程序以及單獨的模塊,在'app'中注入模塊。查看https://github.com/swarajgiri/express-bootstrap/blob/master/minions/index.js和https://github.com/swarajgiri/express-bootstrap/blob/master/bootstrap/app.js# L91 –

回答

1

我通常每個路由使用1個文件,並將我所有的路由文件放在一個routes文件夾中,並利用Express中的可用路由器。

路由文件看起來是這樣的:

var express = require('express'); 
var router = express.Router(); 
router.get('/', function (req, res) { 
    res.send('Hello World!'); 
}); 

module.exports = router; 

然後在應用程序文件,只需添加:

var example = require('./routes/example'); 
app.use('/', example); 

路由文件的路徑是相對於你的應用程序申報路線。使用。