Heroku 上部署 MERN 全栈应用"/>
在 Heroku 上部署 MERN 全栈应用
我正在尝试使用 MERN 建立一个电子商务商店,目前有一个节点后端连接到 MongoDB 数据库并为一些端点提供服务以返回一些 JSON 格式的结果。然后我介绍了一个 React 前端应用程序,它代理回
http://localhost:PORT
,接收上述 JSON 数据并显示它。这在本地运行得很好,但那是因为我基本上是使用 run-p
模块运行两个 npm 命令(即使用一个终端同时为客户端和服务器提供服务)。
但是,当我部署到 Heroku 时,我得到的只是部署失败(Heroku 构建日志)!我的目录结构如下
root/
|__ .env
|__ package.json // Contains the start script ::"start": "cd react && npm run build && cd ../ && node server.js"::
|__ server.js // NodeJS file
|__ // ... some other files used by server.js
|__ react/
|
|__ package.json // Contains the default scripts created by npx create-react-app
|__ build/
|__ src/
|__ public/
这样的事情在单个 heroku 部署中是否可行,或者我是否需要创建两个 Heroku 应用程序?我看到的所有关于部署全栈应用程序的教程,都倾向于指向 Node 后端服务于
app.get('*', ...)
. 下的静态 React 构建目录
--- 编辑:02-05-2023 ---
我已经更新了我的
index.js
,它托管我的 BE 服务器端点,基本上使用与 React 应用程序不同的端点。因此,React 使用的所有端点都不存在于 BE 中,反之亦然。
例如:
假设我的 React 应用程序有这些路由
/
、/contact
和 /help
。我的 NodeJS 服务器不会提供任何这些服务,而是让它们位于 *
路径下以作为 React 静态文件提供服务。这些工作正常。
但是,我的 NodeJS 服务器是为监听其他一些端点而编写的,我们称它们为
/foo
、/bar
,当通过 React 应用程序调用这些端点时,我得到的只是 404...
有人对此有任何解决方案吗?
回答如下:更多推荐
在 Heroku 上部署 MERN 全栈应用
发布评论