2012-09-17 26 views
0

我对node.js很陌生,对Javascript很新颖(我不会用jQuery将jQuery作为简单的动画)。作为网络开发人员,我正在从PHP/MySQL转移到Express/mongo。Express.js路由在一个服务器上运行的多个项目

我喜欢东西整洁的想法 - 只要在性能上没有明显的损失。由于节点如此迅速地发展,我发现很难找到针对当前版本节点的路由方法的具体意见和答案(大多数帖子我发现似乎是不相关的,并且比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.js中放置app.gets而不是外部文件?目前主要使用的路由方法是什么(我在同一台服务器上开发多个小应用程序,因此我希望我的app.js尽可能少)。

回答

1

你所描述的方式是完全可以接受的,在我看来,首选只有一个大的app.js文件与所有的路线和其他一切。

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

例如,这是我一直在研究的一个样板项目,甚至可能在分离时有点过分。这不是一个完成的产品,只是我在玩的东西,从其他样板,框架等中获得了一些我喜欢的东西。从那时起我学到了一些东西,我可能会在某个时候调整它。

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

有一点要记住的是你越独立,它可以更加难以追查问题。虽然没有足够的理由不停留组织。这基本上是我们的目标,对吧?

+0

感谢您的回复;正如我所提到的,我的很多搜索结果都是在几年前;节点,快递和他们的用户都走过了几英里。很高兴看到我并没有错! – darioml

相关问题