0

我对 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 尽可能少)。

4

1 回答 1

1

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

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

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

NemoJS - 我的 node/express/mongoose/jade/stylus/twitter_bstrap 样板项目

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

于 2012-09-17T19:11:49.883 回答