我正在为我的网站使用npm i -D @types/cheerio
模块,但是当我使用此代码时:
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子域的索引页api.website.com
->显示主域api.website.com/about
的“关于”页面! <---不好因此,主域的路由也将应用于子域。 我已经通过Google搜索,但没有找到:(
对于解决此问题的任何帮助将不胜感激!
答案 0 :(得分:2)
对于每个子域,您需要分别处理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")
})