对于node.js和网络编程,我是一个新手,所以如果我提出一些奇怪的问题,这是一个借口:D
所以这就是我设置express node.js项目的方式。
我有一个顶级的app.js只是为了将流量重定向到几个子域:
var app = module.exports = express.createServer(options);
app.use(express.vhost('blog.localhost', require('./apps/blog/blog.js')));
app.use(express.vhost('app1.localhost', require('./apps/app1/app1.js')));
app.use(express.vhost('login.localhost', require('./apps/login/login.js')));
在每个通过require()包含的子应用程序中,我只返回一个新的快速服务器:
module.exports = express.createServer(options);
设置404页面最优雅的方法是什么?当我只使用一个应用程序时,我只是使用
app.use(function(req, res, next){
res.render('404', {
});
});
但是如果我使用这种方法,我将不得不为每个应用程序创建一个404.jade,我不喜欢代码中无用的重复。知道如何在多个虚拟主机之间共享单个404逻辑吗?
答案 0 :(得分:0)
您有3台主机需要3个路由文件。我的建议是从外部文件中要求每条404路由。 这样你就可以拥有每个主机的404路由,但它只会驻留在一个地方。
示例:
404路线文件 - 404.js
module.exports = function (app, req, res, options) {
app.get('/404', function(req, res, next) {
res.render('404', { options: options });
});
}
主机A的路由
// define other routes here
...
// you pass the app, req, res as params
// the last param is for local vars sent to the view
require('./routes/404.js')(app, req, res, { host: 'HostA' });