【问题标题】:Express.js routeing for multiple projects running on one serverExpress.js 路由在一台服务器上运行的多个项目
【发布时间】:2012-09-18 03:11:49
【问题描述】:

我对 node.js 很陌生,对 Javascript 也很陌生(我不计算使用 jQuery 作为 js 的简单动画)。作为一名网络开发人员,我正在从 PHP/MySQL 迁移到 Express/mongo。

我喜欢整洁的想法 - 只要性能没有明显的损失。由于 node 发展如此之快,我发现很难找到针对当前版本 node 的路由方法的具体意见和答案(我发现的大多数帖子似乎无关紧要并且超过 2 年)。

|- app.js
    |- routes
        |- blog.js

我使用 blog.js 作为所有博客相关内容的网关。这包括使用函数注册 GET 和 POST 请求,以及处理页面渲染。

这一切都被一个电话点燃了。

我的 app.js 有以下内容:

... //basic express installation
var db = ... //mongoose database connection

require('./routes/blog')(app, db, '/blog'); //starts the blog up

blog.js 看起来像这样:

var db = null;
var basedir = null;

module.exports = function(app, _db, _basedir){
  db = _db;
  basedir = _basedir;

  app.get (basedir, pages.home );
  app.get (basedir + '/show/:id', pages.getBlog );

  /*app.get(basedir + '/*', function(req, res) {
    res.redirect(basedir);
  });*/ 
};

var pages = {
      home : function(req, res) {
        // whatever
    }

    , getBlog : function(req, res) {
        // whatever
    }
}

我知道这行得通 - 我的问题是,这是否是传统的?这是不推荐的东西吗?是不是很浪费内存?为什么人们将 app.gets 放在 app.js 中而不是外部文件中?目前主要使用的路由方法是什么(我在同一台服务器上开发了多个小型应用程序,因此我希望我的 app.js 尽可能小)。

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    您概述的方式是完全可以接受的,在我看来,最好只拥有一个包含所有路由和其他所有内容的大 app.js 文件。

    许多人对代码的分离比您所概述的要深入得多,尤其是在尝试遵循 MVC 和类似 MVC 的模式时。

    例如,这是我一直在从事的一个样板项目,它甚至可能在分离方面有些过火。它不是成品,只是我正在玩的东西,它从其他样板、框架等中汲取了一些我喜欢的不同部分。从那时起我学到了一些东西,我可能会在某个时候对其进行调整。

    NemoJS - My node/express/mongoose/jade/stylus/twitter_bstrap boilerplate project

    要记住的一件事是,您将其分离得越多,追查问题就越困难。不过,这不是一个足够好的理由不保持井井有条。这基本上就是我们的目标,对吧?

    【讨论】:

    • 感谢您的回复;正如我所提到的,我的很多搜索结果都是几年前的; node、express 和它们的用户都已经走了很长一段路。很高兴看到我并没有错!
    猜你喜欢
    • 1970-01-01
    • 2022-01-22
    • 2014-11-23
    • 1970-01-01
    • 2016-04-14
    • 2018-07-07
    • 1970-01-01
    • 2012-09-02
    • 1970-01-01
    相关资源
    最近更新 更多