当前位置:   NODEJS > 正文

Nodejs/Expressjs app结构

javascript,node.js,express,mvc,https,git,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发工具,开发人员工具,站长工具

假设我有这个代码来分隔expressjs中的路由:

module.exports = function(express,app,client) {

    app.get('/', function(req,res,next) {
        var query = 'SELECT * FROM users LIMIT 10';
        var user = client.query(query, function (err, results, fields) {
            res.render('index', {
                title: 'test',
                users: results
            });
            client.end();
        });
    });
}

并要求app.js:

require('./controllers/routes.js')(express,app,client);

1)如何以最佳方式将数据库查询分成新文件?

即使我将db逻辑分开,这个文件也会变得非常大.

2)分隔路线的好方法是什么?也许单独的模块?然后要求他们全部进入app.js



1> alessioalex..:

这里有一个类似的问题,您应该阅读:如何构建express.js应用程序?

1)所有查询逻辑都应放在模型中(例如驻留在/ models中的模块)

2)将所有路由(控制器)分成模块(并将它们放入/路由中)以路由我的意思为例如: - "用户"路由的所有逻辑都进入/routes/users.js

尽量让你的应用程序成为MVC-ish.

以上应用的小例子:

app.js

// configuration for express etc
require('./routes/index')(app)

路线/ index.js

var model = require("../models/users.js");

module.exports = function (app) {

  app.get('/', function (req, res, next) {
    model.get_recent(function (err, results) {
      // do stuff with your results
      res.render('index');
    });
  });

}

车型/ users.js

module.exports = {
  get_recent: function(callback) {
    var query = "SELECT * FROM users LIMIT 10";
    database.query(query, callback);
  }
}


不应该是`require('./ routes')(app);`?

2> 小智..:

在expressjs下载包中,有一个名为"mvc"的文件夹.作者为微小而高效的mvc结构提供了一个很好的例子.通过代码,您将获得很多灵感.


这可以在repo [**`visionmedia/express`**](https://github.com/visionmedia/express)的目录[**`express/examples/mvc`**]中找到(https: //github.com/visionmedia/express/tree/master/examples/mvc)对于那些和我一样感兴趣的人.
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/NODEJS/detail/11778
推荐阅读
相关标签
  

闽ICP备14008679号