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

时间:2012-06-29 21:29:49

标签: node.js foreman

尝试让我的debian vm上的项目工作,但是工头拒绝开始。 node.js错误消息不是很有用,因为它甚至没有告诉我哪个模块找不到。

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

btw 1:错误信息是相同的,无论web.js是否存在,如果它被删除....这只会增加我的困惑。

btw 2:“工头检查”给我“检测到有效的proc文件(网络)”

叹息。

2 个答案:

答案 0 :(得分:3)

从这一行:

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

看起来你的Procfile中行末尾有一个非打印字符,你调用node web.js,因为在模块名字符串结束后放置的'字符开头这条线。

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

答案 1 :(得分:0)

很可能Procfile来自不同的操作系统,这些操作系统附加回车符,例如\r\n与工头不兼容。只需删除Procfile中的尾随空格或字符,然后重新运行。或者最简单的方法是删除Procfile并使用相同的操作系统创建

示例Procfile:

web: node web.js

启动应用程序:

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