node.js - 如何让 Heroku 运行子文件夹中的 Node 应用程序?

我有一个入口点在这里的 Node 应用

/backend/src/index.js

在本地,如果我尝试从项目根目录运行 node ./backend/src/index.js 我会遇到很多路径错误,但是如果我 cd 进入backend 文件夹并运行 ./src/index.js 我的 Node 应用程序运行。我认为这都是由于使用了通过 Node 应用程序的相对路径所致。

如何将此应用程序部署到 heroku 并使其正常运行?我目前收到这样的 503 错误

2017-07-31T03:02:17.759410+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=[redacted] ... dyno= connect= service= status=503 bytes= protocol=https

有什么方法可以告诉 heroku 在执行启动脚本之前 cd 进入 backend 文件夹?我可以使用 Procfile 执行此操作吗?

最佳答案

如果您使用的是 Heroku 的标准 NodeJS buildpack,我可以想出一种方法让您入门。

此 buildpack 实际上会在您的根路径中搜索 package.json(因此这是一项要求)。在 package.json 中,您可以为您的应用指定启动脚本,如下所示:

"scripts": {
  "start": "cd backend/src && node index.js"
}

这应该将 Heroku 引导至 cd 进入您的目录,然后从那里启动服务器。可以引用相关文档here .

https://stackoverflow.com/questions/45406999/

相关文章:

python-3.x - 无法将音频上传到 Telegram 错误请求 : failed to ge

Angular 2 - 如何将响应式(Reactive)表单元素动态绑定(bind)到事件?

python-3.x - Visual Studio 代码 pylint : Error when

amazon-dynamodb - DynamoDB PutItem 然后 UpdateItem 与

mysql - phpmyadmin error 403 - Forbidden rejected

python - 清除 Selenium 作用链

node.js - 更新 Docker 镜像中的 npm

reactjs - 从 create-react-app 发出构建文件

java - 如何配置 Hibernate Envers 以避免实体修订查询中的某些集合(连接表)

amazon-web-services - 如何将多个域名路由到同一个 amazon S3 存储桶位