表达子域路由问题
express subdomain routing issue
我正在为我的网站使用 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
-> 显示主域 'about' 页面 website.com
!!! <--- 不好
所以主域的路由也被应用到子域。
我已经搜索过 Google,但没有找到 :(
任何有关如何解决此问题的帮助将不胜感激!
对于每个子域,您需要分别处理一个 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")
})
我正在为我的网站使用 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
-> 显示主域 'about' 页面website.com
!!! <--- 不好
所以主域的路由也被应用到子域。 我已经搜索过 Google,但没有找到 :(
任何有关如何解决此问题的帮助将不胜感激!
对于每个子域,您需要分别处理一个 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")
})