无法启动工头cos node.js抱怨一些模糊的模块找不到

试图让我的工作在我的debian虚拟主机,但工头拒绝启动。 node.js错误信息是不是很有帮助,因为它甚至不告诉我什么模块不能find。

sissi@debian:/media/fancystuff$ foreman start 22:05:33 web.1 | started with pid 2949 22:05:33 web.1 | 22:05:33 web.1 | module.js:337 22:05:33 web.1 | throw new Error("Cannot find module '" + request + "'"); 22:05:33 web.1 | ^ '2:05:33 web.1 | Error: Cannot find module '/media/fancystuff/web.js 22:05:33 web.1 | at Function._resolveFilename (module.js:337:11) 22:05:33 web.1 | at Function._load (module.js:279:25) 22:05:33 web.1 | at Array.0 (module.js:484:10) 22:05:33 web.1 | at EventEmitter._tickCallback (node.js:190:38) 22:05:33 web.1 | process terminated 22:05:33 system | sending SIGTERM to all processes 

顺便说一句1:错误消息是一样的,无论是否存在web.js如果它被删除….这只是增加了我的困惑。

顺便说一句2:“工头检查”给我“有效的procfile检测(networking)”

叹。

从这一行:

 '2:05:33 web.1 | Error: Cannot find module '/media/fancystuff/web.js 

它看起来像在你的Procfile的行末尾有一个非打印字符,你调用了node web.js因为'在模块名string后面放置的字符结束在行首。

编辑Procfile并确保该特殊字符不存在,您的问题可能会得到解决。 我可以复制这在我的Debian开发。 服务器通过在EOL之前的web.js之后的行尾添加<32个字符。

大多数Procfile ,Procfile从不同的操作系统复制,附加回车,例如\r\n与工头不兼容。 只要删除Procfile中的尾随空格或字符并重新运行即可。 或者最简单的是删除Procfile并使用相同的操作系统创build

示例Procfile:

web: node web.js

并启动应用程序:

ubuntu@yadayada:~/heroku/web$ foreman start