Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Express.js用于在一台服务器上运行的多个项目的路由_Javascript_Node.js_Express - Fatal编程技术网

Javascript Express.js用于在一台服务器上运行的多个项目的路由

Javascript Express.js用于在一台服务器上运行的多个项目的路由,javascript,node.js,express,Javascript,Node.js,Express,我对node.js很陌生,对Javascript也很陌生(我不把jQuery作为js的简单动画计算在内)。作为一名web开发人员,我正在从PHP/MySQL迁移到Express/mongo 我喜欢整洁的想法——只要性能没有明显的损失。由于node发展如此之快,我发现很难找到针对node当前版本的路由方法的具体意见和答案(我发现的大多数帖子似乎都不相关,而且都超过了2年) 我使用blog.js作为所有博客相关内容的网关。这包括使用函数注册GET和POST请求,以及处理页面呈现 一通电话就把一切都搞

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

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

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

一通电话就把一切都搞糟了

My 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.get放在app.js中而不是外部文件中?当前主要使用的路由方法是什么(我在同一台服务器上开发了多个小应用程序,因此我希望我的app.js尽可能少)。

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

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

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


要记住的一件事是,你越是把它分开,追踪问题就越困难。但这并不是不保持组织性的充分理由。这就是我们的目标,对吗?

谢谢你的回复;正如我提到的,我的很多搜索结果都是几年前的;node、express及其用户都已行驶了相当长的一段距离。很高兴看到我没有完全错!
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
    }
}