gpt4 book ai didi

javascript - JSON 响应被捕获所有 URL 破坏并作为 404 页面返回

转载 作者:太空宇宙 更新时间:2023-11-04 01:49:34 24 4
gpt4 key购买 nike

我有一个像这样的 React/Express 设置(为简洁起见,进行了简化):

const path = require('path')
const express = require('express')

const CLIENT_BUILD_PATH = path.join(__dirname, '../build')

const serialize = data => JSON.stringify({ data })

const app = express()
app.use(express.static(CLIENT_BUILD_PATH))

app.get('/api/get/data', (request, response) => {
Promise.resolve(loadData()).then(data => {
console.log(data)
response.writeHead(200, {'Content-Type': 'application/json'})
response.end(serialize(data))
}).catch((error) => {
response.writeHead(200, {'Content-Type': 'application/json'})
response.end(serialize({}))
})
})

// Catch all route
app.get('*', (request, response) => {
response.sendFile(path.join(CLIENT_BUILD_PATH, 'index.html'))
})

当访问 URL /api/get/data 时,我想返回纯 JSON。

例如

{
"foo": "bar",
}

但是返回的是React的404页面

loadData() 解析得很好,我可以看到data 记录在控制台中。但不知何故,响应被全部路由覆盖(或某些东西)。反正我是想不通。

更新:loadData()的结构如下:

const loadData = () => {
return new Promise((resolve, reject) => {
...
resolve(data)
})
}

最佳答案

ExpressJs 有一个用于 JSON 响应的缩写函数。在响应上使用 .json() 以获得所需的结果,例如:

response.json(数据);

关于javascript - JSON 响应被捕获所有 URL 破坏并作为 404 页面返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50239117/

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