2012-09-08 162 views
0

我想使用connect的vhost功能將幾個express.js應用程序部署到我的開發人員vps。下面是應該將請求發送到相應的地方我server.js文件:使用connect vhost爲多個express.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' 

即使我可以cd到app.js直接從server.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

假設看起來像這樣的目錄結構:

|-. quote-of-the-day 
    |-- server.js <-- the file you list in your question 
    |-. lib 
    |-- app.js 

然後你應該要求你的app.js

require('./lib/app'); 
+0

我的目錄結構有點不同......但我忘了那可愛的小./由於不是在Ubuntu上了位。謝謝 – Msencenb

0

可能有助於使用__dirname格洛巴在這裏變量。它提供了'當前正在執行的腳本所在的目錄的名稱'。' 因此你可以這樣做:

var otherApp = require(__dirname + 'quote-of-the-day/lib/app.js')

http://nodejs.org/docs/latest/api/globals.html

相關問題