экспресс-маршрутизация поддоменов - PullRequest
0 голосов
/ 30 сентября 2018

Я использую модуль express-subdomain для своего веб-сайта, но при использовании этого кода:

const express = require('express')
const subdomain = require('express-subdomain')
const app = express()

const apiRouter = express.Router()
apiRouter.get('/', (req, res) => {
  res.send("Welcome to the API!")
})

app.use(subdomain('api', apiRouter))

app.get('/', (req, res) => {
  res.send("Main domain - Homepage")
})

app.get('/about', (req, res) => {
  res.send("Main domain - About")
})

я получаю следующие результаты:

  • website.com ->показывает главную страницу индекса, как и ожидалось
  • website.com/about -> показывает страницу 'about', как и ожидалось
  • api.website.com -> показывает страницу индекса субдомена API, как и ожидалось
  • api.website.com/about -> показывает страницу о главном домене website.com !!!<--- не хорошо </li>

Таким образом, маршруты основного домена также применяются для поддоменов.Я искал через Google, но ничего не нашел: (

Любая помощь в том, как решить эту проблему, будет принята с благодарностью!

1 Ответ

0 голосов
/ 30 сентября 2018

Для каждого субдомена вам нужно отдельно обработать ошибку 404:

const express = require('express')
const subdomain = require('express-subdomain')
const app = express()
const apiRouter = express.Router()

apiRouter.get('/', (req, res) => {
  res.send("Welcome to the API!")
})

apiRouter.use((req, res, next) => {
  res.status(404)
  next(new Error('Not found'))
})

app.use(subdomain('api', apiRouter))

app.get('/', (req, res) => {
  res.send("Main domain - Homepage")
})

app.get('/about', (req, res) => {
  res.send("Main domain - About")
})
...