Supervisor 节点 .js“程序节点应用程序已退出,代码为 0”错误

2024-03-12

当我安装快速脚手架应用程序时

express

然后运行npm安装

npm install

然后运行主管

supervisor app

I get

Starting child process with 'node app'
Program node app exited with code 0

app.js 文件是一个基本的默认 Express 实例。

var express = require('express');
var path = require('path');
var favicon = require('static-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var routes = require('./routes/index');
var users = require('./routes/users');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use(favicon());
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes);
app.use('/users', users);

/// catch 404 and forward to error handler
app.use(function(req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
});

/// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
    app.use(function(err, req, res, next) {
        res.status(err.status || 500);
        res.render('error', {
            message: err.message,
            error: err
        });
    });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
        message: err.message,
        error: {}
    });
});


module.exports = app;

生成器创建的应用程序调用./bin/www包括app.js然后开始监听流量。

app.js 本身不这样做.

我认为理解这一点很重要。

app.listen is not被叫进来app.js但被叫进来./bin/www...这就是为什么你得到exit 0结果。你打电话时app.js并不是./bin/www它运行通过文件,但由于没有命令来侦听流量,程序正常结束......即没有做任何事情。

也就是说,你有两个选择..

Option 1

如果你有一个./bin/www文件,你可以运行supervisor ./bin/www让事情开始。

Option 2

如果您没有./bin/www无论出于何种原因,您都可以编辑您的应用程序文件,使其看起来像这样。

在您的应用列表中,替换

module.exports = app;

有了这个

app.set('port', process.env.PORT || 3000);

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

重要的提示

虽然该编辑将启动应用程序侦听,但您不会得到exit 0再者,如果其他文件和目录丢失,我不能保证应用程序不会因其他错误而崩溃。例如,如果routes目录不存在,则声明需要routes/index and routes/users会失败并且会发生其他不好的事情。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Supervisor 节点 .js“程序节点应用程序已退出,代码为 0”错误 的相关文章

随机推荐