3

堆栈溢出的新手。

因此,我在 Digital Ocean 液滴上使用 Express(节点 9)托管我的网站。我正在使用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;

抱歉,如果这不是足够的信息。很高兴回答您需要回答的任何其他问题。

-- 系统

4

1 回答 1

0

我建议你不要使用express-vhost(旧的和不推荐使用的包),而是直接使用vhostexpress org 的模块。

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)
于 2018-06-22T09:49:23.620 回答