gpt4 book ai didi

node.js - 主管 Node .js "Program node app exited with code 0"错误

转载 作者:搜寻专家 更新时间:2023-10-31 22:17:49 24 4
gpt4 key购买 nike

当我安装 express 脚手架应用时

express

然后运行 ​​npm install

npm install

然后运行supervisor

supervisor app

我明白了

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;

最佳答案

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

app.js 自己不这样做

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

app.listen app.js 中调用,但在 ./bin/www 中调用>...这就是您得到 exit 0 结果的原因。当您调用 app.js 而不是 ./bin/www 时,它会遍历文件,但是因为没有命令来监听流量,所以程序正常结束......即什么都没做。

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

选项 1

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

选项 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/indexroutes/users 的声明将失败,并且出现其他问题将会发生。

关于node.js - 主管 Node .js "Program node app exited with code 0"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24288806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com