gpt4 book ai didi

node.js - 如何为 React 提供 index.html 并在相同路径处理路由?

转载 作者:行者123 更新时间:2023-12-05 01:16:01 29 4
gpt4 key购买 nike

如果用户尚未下载 react_app.js(第一次下载),则使用 React,您需要在任何路由中提供包含 react_app.js 的 index.html。

然后您需要从 react_app.js 提供一些 api 调用,但是如果您对 GET 使用相同的 url,比方说,您将获得 API 调用响应而不是带有 react_app.js 的 index.html。

解决这个问题的方法是什么?仅使用某些前缀进行 api 调用并仅在找不到路由时才发送 index.html?

我的代码:

fastify.register(require('fastify-static'), {
root: path.join(__dirname, './static')
})

fastify.route({
method: 'GET',
url: '/',
handler: async (req, res) => {
res.send('you will get api call answer but you need to serve index.html with react_app.js first!!!!')
}
})

最佳答案

正如@Garrert 所建议的,这就是它的工作方式:

// Статические файлы
fastify.register(require('fastify-static'), {
root: path.join(__dirname, './static')
})

// this will work with fastify-static and send ./static/index.html
fastify.setNotFoundHandler((req, res) => {
res.sendFile('index.html')
})

// Here go yours routes with prefix
fastify.register(async openRoutes => {
openRoutes.register(require('./server/api/open'))
}, { prefix: '/api' })

关于node.js - 如何为 React 提供 index.html 并在相同路径处理路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54598218/

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