永久使用 Node.JS Express 4

18
如何使用Forever运行Express 4应用程序?(或者有新的软件包吗?)
我正在使用本地安装的Forever来运行我的Express 3应用程序。我使用以下命令:
forever -a start app.js

就像魔术一样,我在 Stack Overflow 上发布了问题,在接下来的(一百万加1)次搜索中找到了 https://github.com/Unitech/pm2。这是合法的吗? - Eric Sheasby
6个回答

24

试一试:

forever start ./bin/www

让我们来看一下 package.json 文件:

"scripts": {
    "start": "node ./bin/www"
},

我猜当我们运行npm start时,./bin/www会在某个时间点被执行。接下来看一下./bin/www的内容:

var server = app.listen(app.get('port'), function() {
  debug('Express server listening on port ' + server.address().port);
});

所以我们已经准备好监听连接。


14
forever start --minUptime 1000 --spinSleepTime 1000 ./bin/www

2
我看到这个答案无处不在,但没有解释 ./bin/www 怎么可能知道你的 app.js 文件在哪里,或者它的名字是什么。 - Seph Reed

2

1

首先尝试运行 node app.js。我在代码库中添加了一个新模块,但我没有在我的 AWS 服务器上运行 npm install,导致 forever 没有给出错误提示,只是默默地停止了运行,但是 node 会给出错误提示。


0

2021年2月

本解决方案适用于Windows操作系统上的express.js和forever。

package.json

"scripts": {
  "start": "set PORT=3001 && set DEBUG=myapp:* && forever start --minUptime 1000 --spinSleepTime 1000 ./bin/www",
}

现在运行:

npm start

注意:有关其他操作系统和自定义,请参见以下链接:https://expressjs.com/en/starter/generator.html


0

http://expressjs.com/guide.html

在 Expressjs 指南文件中,使用“npm start”。
我想使用“forever”但不行。
因此,在“app.js”中添加代码:
var server = app.listen(3000, function() { console.log('正在监听 %d 端口', server.address().port); });
然后用 $node app.js 来使用它。
这样 forever 也可以使用。

我看到这个被踩了一下,却没有任何评论。这不公平。如果你认为这是错误的,请说出原因。我仍然在使用express 3。我尝试过pm2,但它甚至连“hello world”都没有输出。 - Eric Sheasby
嗯...你运行了 $node app.js 吗? 如果它没有启动或出现错误 -> 请检查代码, 控制台没有任何输出 -> 请检查调试或上传您的代码。 - pineoc
@EricSheasby 我认为这个回答被投票否决的原因是它根本没有回答问题。你正在询问如何使用forever启动一个node应用程序,而pineoc明确表示他们不知道如何在他们的回答中提供一个答案。 - JoeMoe1984

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接