我对node.js很新,而且对Javascript很新(我不把简单的动画用jQuery算作js)。作为一名网络开发人员,我正在从PHP / MySQL迁移到Express / mongo。
我喜欢整洁的想法 - 只要没有明显的性能损失。由于节点发展如此迅速,我发现很难找到针对当前节点版本的路由方法的具体意见和答案(我发现的大多数帖子似乎都不相关且超过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尽可能少)。
答案 0 :(得分:1)
你所概述的方式是完全可以接受的,在我看来,我更喜欢只有一个大的app.js文件,其中包含你所有的路线和其他所有内容。
许多人将代码分离得比你概述的要多得多,特别是在尝试遵循MVC和类似MVC的模式时。
例如,这是一个我正在研究的样板项目,甚至可能在分离上有点过分。它不是一个成品,只是我正在玩的东西,从我喜欢的其他样板,框架等中获取了一些不同的东西。从那以后我学到了一些东西,我可能会在某些时候调整它。
NemoJS - My node/express/mongoose/jade/stylus/twitter_bstrap boilerplate project
要记住的一件事是,将它分开越多,追踪问题就越困难。虽然没有足够的理由不能保持井井有条。这基本上就是我们的目标,对吗?