[英]Using connect vhost to serve multiple express.js apps
我想使用connect的虚拟主机功能将多个express.js应用程序部署到我的开发vps。 这是我的server.js文件,应该将请求发送到适当的位置:
var express = require('express')
var quotes = require('quote-of-the-day/lib/app.js');
var server = express();
server.use(express.vhost('inspiringquoteoftheday.com',quotes));
server.listen(80);
运行节点server.js会引发以下错误:
Error: Cannot find module 'quote-of-the-day/lib/app.js'
即使我可以直接从server.js所在的目录进入app.js。
这是我导出我的Express应用程序的lib / app.js文件(我认为)
// Generated by CoffeeScript 1.3.3
(function() {
var app, express, pub;
express = require('express');
module.exports = app = express();
pub = __dirname + '/public';
app.use(express["static"](pub));
app.use(express.errorHandler());
app.use(app.router);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.get('/', function(req, res) {
return res.render('home');
});
}).call(this);
假设目录结构看起来像这样:
|-. quote-of-the-day
|-- server.js <-- the file you list in your question
|-. lib
|-- app.js
然后,你应该要求你的app.js
与
require('./lib/app');
在此处使用__dirname全局变量可能会有所帮助。 它提供“当前正在执行的脚本所在的目录的名称”。 因此,您可以执行以下操作:
var otherApp = require(__dirname + 'quote-of-the-day/lib/app.js')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.