繁体   English   中英

使用Connect vhost服务多个express.js应用

[英]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')

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM