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



我对node.js很陌生,对Javascript也很陌生(我不把jQuery的简单动画算作js)。作为一名网络开发人员,我正在从PHP/MMySQL转向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尽可能小)。

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

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

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

NemoJS-我的节点/快递/猫鼬/翡翠/手写笔/推特_背带样板项目

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

最新更新