node.js - 如何在同一个 Heroku 应用上部署 Front & Back node.js?
问题描述
为了能够运行我的应用程序,我需要在 2 个不同的终端中运行这 2 个命令:
- cd app && npm install & npm start
- cd api && npm install & npm start
我基本上启动了前端(app)和后端(api)。我想在 Heroku 上部署它,但使用免费计划。
有没有办法做到这一点?我需要在根文件夹上创建一个 package.json 文件吗?如果是,里面应该是什么?无论我写什么,它似乎只跑前面,从不跑后面。
非常感谢!
解决方案
您需要构建前端,然后从服务器端提供服务。
无论您使用什么前端框架,请确保构建文件保存在服务器静态目录中。然后创建一个路径来加载构建文件(大多数情况下是 index.html)。
你的步骤可能是
- 首先,构建生产就绪的前端(在大多数情况下,它将在分发目录中生成 index.html)。
- 将分发目录放在您的服务器公共或静态目录中。
- 在您的服务器端制作路由并将静态文件(主要是 index.html)
现在你准备好了,把节点服务器放到heroku。
例如,您的最终路线可能是
app.get("*", (req, res) => { res.sendFile("静态 index.html 文件路径"); })
推荐阅读
- language-ext - Language-Ext Unions - 目标运行时不支持默认接口实现
- karate - 我可以使用空手道中的状态快捷方式来检查响应类而不是只检查一个代码吗
- reactjs - 如何让 React styleguidist 正确安装并通过 react-simple-code-editor: React 16 & 17 解决对等依赖问题?
- php - 为什么mySql无法启动?
- flutter - Flutter:CupertinoPicker 触发 List 内的函数
- android - AudioDeviceCallback 将连接的 WearOS 手表返回为 AudioDeviceInfo.TYPE_BLUETOOTH_SCO
- android - 我可以使用向后兼容来保存 Room prelollipop 版本中的数据 Unicode
- javascript - 在 JavaScript 中以原始顺序迭代 JSON 对象
- python - 如何通过重复值“另一列的大小”次来创建数组列?
- sql - PostgreSQL 源连接器中的 timestamp.column.name 是否支持别名?