NodeJS适当的路由结构实践

在过去的几天里,我一直在研究在NodeJS中使用控制器和路由的最佳实践。 我想分开我的控制器,模型,中间件和路线,而不是有一个非常混乱的路线页面。

最后我想出了一个可行的解决scheme,我想你的input是他们更有效的方法吗? 我觉得现在看起来有点基本,请提问。

目录结构

MacBook-Pro:v1 MacPlusADay$ tree . ├── app.js ├── bin │  └── www ├── controllers │  ├── index.js │  └── user.js ├── middlewares ├── models ├── npm-debug.log ├── package.json ├── public │  ├── images │  ├── javascripts │  └── stylesheets │  └── style.css ├── routes │  ├── index.js │  └── users.js └── views ├── error.jade ├── index.jade └── layout.jade 

app.js我正在使用这个方法将所有的路由文件包含到app.js文件中,我觉得这样做比较容易,因此不必单独包含每个路由文件。

 var normalizedPath = require("path").join(__dirname, "routes"); require("fs").readdirSync(normalizedPath).forEach(function(file) { app.use('/', require("./routes/" + file)); }); 

routes / index.js我有我的控制器类中运行的大多数function分离每个路由类。 可以有多个这样的路由文件,例如一个用户,一个用于文章。

 var express = require('express'); var router = express.Router(); var indexController = require('../controllers/index'); router.get('/', indexController.getIndex); module.exports = router; 

controllers / index.js我已经将function分离到一个模块导出,以便于编辑。

 module.exports = { //GET / index page getIndex: function(req, res, next) { res.render('index', { title: 'Express2' }); } };