NodeJS部署错误
NodeJS deployment error
我有一个 NodeJS 项目。我已经构建了一个基于 ExpressJS、SocketIO 的框架,MongoDB 它在本地版本中运行良好。
我正在尝试在 DigitalOcean Droplet (Debian) 上部署这个项目;我已经安装了所需的一切(npm、节点、mongo)。它开始启动守护进程,但我遇到了一个很大的错误。
为了启动我的应用程序,我使用 npm start
和以下脚本
"scripts": {
"start": "./node_modules/.bin/supervisor DEBUG=unicorn ./bin/www"
}
然后就是这样
Starting child process with 'node ./bin/www'
01:59:19 - info: Try to connect to MongoDB via Mongoose ...
01:59:19 - info: Loading Socket.io module ...
Option log level is not valid. Please refer to the README.
01:59:19 - info: Reboot system initialized (pre_starters)
01:59:19 - info: --------------------
01:59:19 - info: Unicorn (Black Mamba (0.0.4a))
01:59:19 - info: -> Welcome aboard !
01:59:19 - info: -> Your app is ready to use.
01:59:19 - info: --------------------
01:59:19 - info: Express server listening on port 8003
events.js:72
throw er; // Unhandled 'error' event
^
Error: ENOENT, open 'logs/app.log'
Program node ./bin/www exited with code 8
所以找了3个多小时的解决办法,人家说一般是端口忙,我查了所有的进程和他们使用的端口,都没有找到。
我也尝试过更改 Express 和 SocketIO 的端口(80、8080、3000 等),但没有任何改变...
你有什么我可以尝试的其他想法吗?或者更好的神奇解决方案?谢谢大家 ;)
PS : 我还从服务器上做了一个干净的 npm install
以确保从我的本地版本到服务器的包兼容性没有问题。
问题是这样的:
Error: ENOENT, open 'logs/app.log'
这意味着您的脚本试图打开日志文件但失败了。由于错误没有被捕获,脚本崩溃了。
我的猜测是它没有在您假设的目录中启动(子目录为 logs/
的目录)。因此,您应该确保您的脚本在正确的目录中启动,或者您应该使用日志文件的绝对路径。
我有一个 NodeJS 项目。我已经构建了一个基于 ExpressJS、SocketIO 的框架,MongoDB 它在本地版本中运行良好。
我正在尝试在 DigitalOcean Droplet (Debian) 上部署这个项目;我已经安装了所需的一切(npm、节点、mongo)。它开始启动守护进程,但我遇到了一个很大的错误。
为了启动我的应用程序,我使用 npm start
和以下脚本
"scripts": {
"start": "./node_modules/.bin/supervisor DEBUG=unicorn ./bin/www"
}
然后就是这样
Starting child process with 'node ./bin/www'
01:59:19 - info: Try to connect to MongoDB via Mongoose ...
01:59:19 - info: Loading Socket.io module ...
Option log level is not valid. Please refer to the README.
01:59:19 - info: Reboot system initialized (pre_starters)
01:59:19 - info: --------------------
01:59:19 - info: Unicorn (Black Mamba (0.0.4a))
01:59:19 - info: -> Welcome aboard !
01:59:19 - info: -> Your app is ready to use.
01:59:19 - info: --------------------
01:59:19 - info: Express server listening on port 8003
events.js:72
throw er; // Unhandled 'error' event
^
Error: ENOENT, open 'logs/app.log'
Program node ./bin/www exited with code 8
所以找了3个多小时的解决办法,人家说一般是端口忙,我查了所有的进程和他们使用的端口,都没有找到。
我也尝试过更改 Express 和 SocketIO 的端口(80、8080、3000 等),但没有任何改变...
你有什么我可以尝试的其他想法吗?或者更好的神奇解决方案?谢谢大家 ;)
PS : 我还从服务器上做了一个干净的 npm install
以确保从我的本地版本到服务器的包兼容性没有问题。
问题是这样的:
Error: ENOENT, open 'logs/app.log'
这意味着您的脚本试图打开日志文件但失败了。由于错误没有被捕获,脚本崩溃了。
我的猜测是它没有在您假设的目录中启动(子目录为 logs/
的目录)。因此,您应该确保您的脚本在正确的目录中启动,或者您应该使用日志文件的绝对路径。