AWS EC2,NodeJS - 找不到模块

时间:2014-10-28 21:09:54

标签: node.js ubuntu amazon-ec2

我已在AWS EC2上成功安装并运行NodeJS。我使用脚本自动启动它。它也工作正常。 现在我想安装同一个应用程序的另一个实例 - 在单独的文件夹下并侦听不同的端口。 第二次安装后,我有两个独立的节点项目: - /var/nodes/fc-dev - dev节点和 - /var/nodes/fc-prod - 生产节点 我还为生产模块创建了单独的脚本 - /etc/init/fc-prod.conf 这是/etc/init/fc-dev.conf脚本:     #将日志保存到/var/log/upstart/fc-dev.log     控制台日志

# Starts only after drives are mounted.
start on started mountall

stop on shutdown

# Automatically Respawn. But fail permanently if it respawns 10 times in 5 seconds:
respawn
respawn limit 10 5

script
   exec sudo NODE_ENV=development /usr/bin/node --debug /var/nodes/fc-dev/fc-server.js
end script

这是/etc/init/fc-prod.conf文件:

# Saves log to /var/log/upstart/fc-dev.log
console log

# Starts only after drives are mounted.
start on started mountall

stop on shutdown

# Automatically Respawn. But fail permanently if it respawns 10 times in 5 seconds:
respawn
respawn limit 10 5

script
   exec sudo NODE_ENV=production /usr/bin/node /var/nodes/fc-prod/fc-server.js
end script

我按sudo start fc-dev成功启动了dev项目,但是当我输入sudo start fc-prod时,我遇到了以下错误:

module.js:340
    throw err;
          ^
'rror: Cannot find module '/var/nodes/fc-prod/fc-server.js
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3

另一方面,键入sudo NODE_ENV=production /usr/bin/node /var/nodes/fc-prod/fc-server.js可以让我启动生产节点。 我做错了什么?

1 个答案:

答案 0 :(得分:0)

经过额外尝试并失败后,我解决了以下问题: sudo cp fc-dev.conf fc-prod.cp sudo nano fc-prod.conf - 编辑删除调试相关参数并将目标文件夹更改为生产文件的文件。我还比较了生产配置文件的两个文件版本,我得到的唯一区别是一些特殊字符 - LFCRLF 希望这有助于将来的某些人。