Express Vhost'参数句柄是必需的'

时间:2018-04-01 19:30:07

标签: node.js express express-vhost

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

尝试使用vhost for subdomians获取使用Express的网站和相关API。

这是我的文件夹结构

/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:需要参数句柄"无论我做什么。

真的很感激任何帮助。

2 个答案:

答案 0 :(得分:0)

您已导出应用程序。因此,没有必要在您的需求结束时添加.app。

应该是:

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

希望有所帮助。

答案 1 :(得分:0)

这是我所做的:

//used the api.localhost as the subdomain url
//it requires another express app.js to work
//the other express app must -> module.exports = app;

const vhost = require('vhost');

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