node.js - express 虚拟主机 'argument handle is required'

标签 node.js express express-vhost

首先,在这里发现了几个类似的问题,但没有重复,我认为我的情况略有不同。

尝试使用子域名的虚拟主机让网站和相关 API 在 Express 上运行。

这是我的文件夹结构

/api
  api.js
/server
  website.js
server.js

我的server.js

const vhost = require('vhost');
const express = require('express');

const app = express();
app.use(vhost('localhost', require('./server/website.js').app));
app.use(vhost('api.localhost', require('./api/api.js').app));

app.listen(1337, () => {});

我的 api.js

const express = require('express');
const app = express();

app.get('/', function(req, res){
    res.send({ hello: 'world' });
});

module.exports = app;

最初我的 api.js 路径是错误的,并且出现了未找到的错误,所以现在我知道我的路径是正确的,但现在无论我做什么,我都会收到错误“Typeerror:需要参数句柄”。

任何帮助将不胜感激。

最佳答案

您已经导出应用程序。因此没有必要将 .app 添加到您的 require 末尾。

应该是:

app.use(vhost('localhost', require('./server/website')));
app.use(vhost('api.localhost', require('./api/api')));

希望有帮助。

关于node.js - express 虚拟主机 'argument handle is required',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49601876/

相关文章:

node.js - ExpressJS 多域 https 托管

node.js - NodeJS Express - 同一端口上的两个 NodeJS 实例(vhost)

node.js - Nodejs - 带有 vhost 的动态快速子域

node.js - 使用 .desktop 文件在树莓派上启动 node.js 终端应用程序

javascript - 继承 Sails.js 模型的属性和生命周期函数

javascript - (...).then 不是 Node (expressJS) 中的函数

node.js - Express Socket.io 示例服务器不工作

node.js - azure node.js console.log 未登录到 stdout 或 stderr 文件

jquery - Meteor:将 jQuery ajax 帖子从 NodeJs 发送到 php

node.js - 更清晰的node.js回调