我想使用connect的vhost功能将几个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。
这是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);
答案 0 :(得分:0)
假设目录结构如下所示:
|-. quote-of-the-day
|-- server.js <-- the file you list in your question
|-. lib
|-- app.js
然后您应该要求app.js
require('./lib/app');
答案 1 :(得分:0)
在这里使用__dirname全局变量可能会有所帮助。 它提供了“当前正在执行的脚本所在的目录的名称。” 因此你可以这样做:
var otherApp = require(__dirname + 'quote-of-the-day/lib/app.js')