NodeJS适当的路线结构实践

时间:2016-08-24 02:31:24

标签: javascript node.js express routes

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

最后我想出了一个有效的解决方案,我希望你的输入是他们更有效的方法吗?我觉得现在这似乎有点基础,请提出问题。

目录结构

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 我已经分离了每个路由类,其中大多数功能都在我的控制器类中运行。这些路径文件可以有多个,例如一个用户,一个用于帖子。

var express = require('express');
var router = express.Router();

var indexController = require('../controllers/index');

router.get('/', indexController.getIndex);

module.exports = router;

controllers / index.js 我已将功能分离为模块导出,以便于编辑。

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

0 个答案:

没有答案