gpt4 book ai didi

node.js - 表达子域路由问题

转载 作者:搜寻专家 更新时间:2023-11-01 00:50:26 24 4
gpt4 key购买 nike

我正在为我的网站使用 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 -> 按预期显示“关于”页面
  • api.website.com -> 按预期显示 API 子域的索引页
  • api.website.com/about -> 显示主域 website.com 的“关于”页面!!! <--- 不好

所以主域的路由也被应用到子域。我已经通过谷歌搜索,但没有找到:(

如能提供解决此问题的任何帮助,我们将不胜感激!

最佳答案

对于每个子域,您需要分别处理 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")
})

关于node.js - 表达子域路由问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52580649/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com