Javascript 带有Heroku调度程序的Node.js应用程序出现Shebang行问题

Javascript 带有Heroku调度程序的Node.js应用程序出现Shebang行问题,javascript,node.js,heroku,shebang,Javascript,Node.js,Heroku,Shebang,我正在尝试将一个小型Node.js应用程序部署到Heroku,然后让Heroku调度程序每10分钟运行一次应用程序。我们的客户——构建此应用程序的前供应商——也在Heroku上托管了它,所以我收到的源代码中应该没有任何更改的必要。然而,我从Heroku日志中得到以下错误 2018-05-09T07:26:07.710882+00:00 app[api]: Starting process with command `fetch` by user scheduler@addons.heroku.c

我正在尝试将一个小型Node.js应用程序部署到Heroku,然后让Heroku调度程序每10分钟运行一次应用程序。我们的客户——构建此应用程序的前供应商——也在Heroku上托管了它,所以我收到的源代码中应该没有任何更改的必要。然而,我从Heroku日志中得到以下错误

2018-05-09T07:26:07.710882+00:00 app[api]: Starting process with command `fetch` by user scheduler@addons.heroku.com
2018-05-09T07:26:11.124833+00:00 heroku[scheduler.2653]: Starting process with command `fetch`
2018-05-09T07:26:11.718182+00:00 heroku[scheduler.2653]: State changed from starting to up
2018-05-09T07:26:13.647479+00:00 heroku[scheduler.2653]: State changed from up to complete
2018-05-09T07:26:13.629258+00:00 heroku[scheduler.2653]: Process exited with status 126
2018-05-09T07:26:13.542885+00:00 app[scheduler.2653]: bash: /app/bin/fetch: /usr/local/bin/node: bad interpreter: No such file or directory
显然,运行我的
index.js
文件的
fetch
文件中的“Shebang”行有问题:

#!/usr/local/bin/node
var path = require('path');
require(path.join(__dirname, '../index')).start();

我对Node.js和Javascript比较陌生,所以我不确定自己是否完全理解“Shebang”行的用途。但我猜它指向了一个错误的位置或类似的东西?我如何计算,在这行中要更改什么?

在“fetch”文件中不需要任何“shebang”行。 我建议您只需删除
#/usr/local/bin/node
行,并指定以下内容作为Heroku调度程序命令:

node <path_to_fetch.js>
节点
这应该可以让heroku scheduler在中启动你的node.js应用程序,前提是你的应用程序中有

使用说明检查应用程序中是否有node.js buildpack,并在必要时添加它


也就是说,如果你真的想用一个“shebang”来运行你的应用程序,把它改成
#/usr/bin/env节点
。在这种情况下,在Heroku调度程序命令中省略单词
节点

在“fetch”文件中不需要任何“shebang”行。 我建议您只需删除
#/usr/local/bin/node
行,并指定以下内容作为Heroku调度程序命令:

node <path_to_fetch.js>
节点
这应该可以让heroku scheduler在中启动你的node.js应用程序,前提是你的应用程序中有

使用说明检查应用程序中是否有node.js buildpack,并在必要时添加它


也就是说,如果你真的想用一个“shebang”来运行你的应用程序,把它改成
#/usr/bin/env节点
。在这种情况下,在Heroku调度程序命令中省略单词
节点

Shebang行告诉您要使用哪个解释器来运行文件。您收到的错误表明节点未安装在shebang指向的位置。使用
#/usr/bin/env节点通常可以工作。

Shebang行告诉您要使用哪个解释器来运行文件。您收到的错误表明节点未安装在shebang指向的位置。使用
#/usr/bin/env节点通常可以工作