子域无法使用Express-vhost工作

时间:2018-06-22 09:22:23

标签: javascript node.js express digital-ocean express-vhost

堆栈溢出的新功能。

因此,我使用Express(节点9)在Digital Ocean小滴上托管了我的网站。我正在使用express-vhost,因此我可以检测子域以允许我执行api.example.com而不是example.com/api,但是当我尝试尝试时,它只是将我定向到example.com主机名中的api.部分。

我不确定这是编程问题还是实际上与我的DNS记录有关,或者Digital Ocean是否是问题。我不太了解VPS和托管。

代码如下:

// app.js
var subdomain = require('express-vhost');
var express = require('express');
var app = express();
var router = express.Router();
var api = require("./api.js")

subdomain.register('api.localhost:3000', api)
app.use(subdomain.vhost(app.enabled('trust proxy')));

app.get('/', function(req, res) {
    res.send('Detect Region and send to correct subdomain!');
});

app.listen(3000);

和其他文件

// api.js
var express = require('express')
var router = express.Router()

router.get('/', function(req, res) {
    res.send("api url")
});

module.exports = router;

很抱歉,如果此信息不足。很高兴回答您需要回答的其他问题。

-sys

1 个答案:

答案 0 :(得分:0)

我建议您不要使用express-vhost(旧的且已弃用的软件包),而应直接使用快递组织的vhost模块。

const vhost = require('vhost')
const express = require('express')
const app = express()
const api = require('./api')

app.enable('trust proxy')

app.use(vhost('api.localhost:8000', api)) // api being your router

app.get('/', function(req, res) {
    res.send('Detect Region and send to correct subdomain!');
})

app.listen(3000)