永远检测到脚本退出代码:0

Forever detected script exited with code: 0

我有一个 app4.js 内容:

var express = require('express');
var app = express();

app.get('/', function (req, res) {
  res.send('Hello World!');
});

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

我在 Win10 cmd,我可以用 node app4.js 成功 运行 它并获得 Example app listening on port 3000!

但是当我使用 forever -a forever.log start app4.js 时,它显示错误

Forever detected script exited with code: 0

问题出在哪里?如何解决?


命令消息:

D:\app>node app4.js
Example app listening on port 3000!
^C
D:\app>forever -a forever.log start app4.js
warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
error: Forever detected script exited with code: 0


Another Answer说是和./bin/www有关,但我不明白是什么意思

这意味着尝试将您的 app.js 代码移动到 bin 目录中的 www 文件。

在.bin/www

var express = require('express');
var app = express();

app.get('/', function (req, res) {
  res.send('Hello World!');
});

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

这似乎也是某些版本 node/forever 上的一个已知错误。

Issue

经过一些尝试我明白了,这是我完整的测试过程:

1.In开始,我正在看this video学习forever,在10:24使用forever start server.js并成功运行 服务器文件。


2.Theoretically 如果我使用 forever start app4.js 它应该成功,但我得到错误:

D:\app>forever start app4.js
warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info:    Forever processing file: app4.js
error:   Cannot start forever
error:   log file C:\Users\admin\.forever\forever.log exists. Use the -a or --append option to append log.

3.By 消息,我想我应该使用 -a 将日志附加到某个文件,所以我在当前文件夹下创建了一个日志文件 forever2.log,并使用 forever -a forever2.log start app4.js,我得到了错误:

error: Forever detected script exited with code: 0

4.After 试了一下,突然仔细看了下我看的nodejs书,它的例子是forever start -l forever.log -o out.log -e err.log app.js,也就是-x放在[=23=之间] 和 app.js,所以我将命令更改为 forever start -a forever2.log app4.js 并得到

warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info:    Forever processing file: forever2.log

这是正在处理forever2.log,但我想要的是app4.js


5.Finally 我试了 forever start -a app4.js,我得到了

warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info:    Forever processing file: app4.js

然后我运行浏览器在http://localhost:3000/Hello World!终于显示了!