2016-08-03 119 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); 

路由文件的路径是相对于你的应用程序申报路线。使用。