gpt4 book ai didi

javascript - Node.Js 服务器不断崩溃,但没有错误

转载 作者:行者123 更新时间:2023-12-02 15:46:56 24 4
gpt4 key购买 nike

我目前正在负责一个企业项目,该项目基本上是一个用于与其他员工互动的实时留言板。

在基础知识已经开发出来之后,我接手了这个工作,而且我对 Node 和总体开发还很陌生。

我们的服务器只是在随机时间意外退出,没有错误。它每天最多发生一次,有时服务器负载很小,有时服务器负载很重。

有一个未捕获异常的监听器:

    process.on('uncaughtException', function(err) {
// handle the error safely
console.log("Uncaught exception: "+err);
});

我们还将错误打印到控制台和日志文件,但在退出之前都不会显示错误!

我们正在使用express和socket.io

如有任何帮助,我们将不胜感激。

这基本上就是我们在服务器中的代码。我正在记录我可以看到的所有不同进程,但我根本没有收到任何错误消息,并且当执行不同的内容时它似乎总是崩溃:

    process.on('uncaughtException', function(err) {
// handle the error safely
console.log("Uncaught exception: "+err);
});

app.configure(function(){
app.use(express.cookieParser()); // Allow parsing of cookies
app.use(express.json()); // Support JSON parsng
app.use(express.urlencoded()); // Support URL encoded params
app.set('view engine', 'ejs'); // Define view engine as EJS
app.use(express.session({store: sessionStore, secret: sessSecret, key: sessKey}));
app.use(app.router); // Use routes
app.use("/public", express.static(__dirname + '/public')); // Define public directory
});



var server = https.createServer(options, app).listen(app_port, function(){
console.log("Express server listening on port " + app_port);
});

// Require our routes module
var routesModule = require('./modules/routes.js')(app);
var svc_io = require("/usr/lib/node_modules/socket.io/index.js")(https);
var dbmodule = require("./modules/db.js");


var moment = require('/usr/lib/node_modules/moment/moment.js');
var fs = require('/usr/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js');
var util = require('util');

console.log = function(d){
var time = moment().format('DD-MMM-YYYY HH:mm:ss.SSS');

var log_file = fs.createWriteStream(__dirname + '/debug.log', {flags: 'a'});
var log_stdout = process.stdout;

log_file.write(time + ' : ' + util.format(d) + '\n');
log_stdout.write(time + ' : ' + util.format(d) + '\n');
log_file.end();
};

var io = svc_io.listen(server);
var socketModule = require('./modules/socket.js')(app, io, sessionStore, cookieParser, sessKey, sessSecret);

最佳答案

如果这可以帮助其他人从 Google 得到这个问题:我有一个崩溃的 Node.js 服务器,完全没有错误,并且在意识到这是因为在我的代码中的某个地方之前,我花了一个小时的时间写入像 writeFileSync("./foo.json", "...") 这样的文件,通常情况下当然没问题,但这会导致服务器“崩溃”,因为我使用的是 PM2 “监视”服务器目录中的文件更改 - 即每当服务器目录中的文件发生更改时,PM2 都会重新启动服务器。我通过为 .data 文件夹添加 watch_ignore 配置并将 foo.json 放入其中来解决此问题。

关于javascript - Node.Js 服务器不断崩溃,但没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26234085/

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