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' }); } };