gpt4 book ai didi

node.js - 生产环境中的 Node Express 路径不匹配 (Heroku)

转载 作者:行者123 更新时间:2023-12-05 06:08:45 24 4
gpt4 key购买 nike

这个问题已经被问过很多次了,我已经检查了所有常见的原因 - 仍然无法解决问题。有关常见原因和尝试的解决方案,请参阅下面的调试步骤。

我有一个React 应用(由create-react-app 构建)、一个Node Express 服务器,我将它们部署在Heroku 上.

整个 repo 都是公开的 here .

可以查看现场制作页面here .

这里是问题所在:

React 应用程序加载正常。在应用程序加载时,我们对“GET/api/haikus”进行 API 调用,该调用返回错误。 ( view App.js code )

API 调用的错误是 Unexpected token < in JSON .我们检查网络响应,并查看我们的 React 应用程序的 index.html页面。

我也是用PostMan直接做了一个GET /api/haikus查看我的浏览器或 react 是否弄乱了它。我仍然得到相同的响应(即 index.html 页面)。

对于 Express 应用,这通常意味着您的路由顺序错误(例如 app.get("*", ...) 在您的 API 路由之前被命中)。

所以我检查了我的 server.js 中的路线文件。它们与 /api 的顺序正确一般以上航线*路线。

那么为什么我的服务器不匹配任何路由仅在生产环境中?

最佳答案

server.js 文件已经被编写来为 React 的静态文件(build 文件夹)提供服务,同时也为 API 响应提供服务。但是在您的 package.json 文件中,我只能看到您正在运行“serve -s build”,它将提供 react 文件,而不触发提供 API 响应的 Node 服务器。

因此,您可能必须将 server.js 作为“npm 启动”脚本运行,它将提供 API 以及 react 文件(来自构建文件夹)。

因此尝试如下更改 package.json 中的 npm 脚本并重新部署到 heroku。

"start": "node server.js",

关于node.js - 生产环境中的 Node Express 路径不匹配 (Heroku),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65043477/

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