2015-06-01 1 views
2

Я разрабатываю приложение Node.js, которое у пользователя подписывается на трех уровнях. проблема заключается в том, что пользователь сталкивается с ошибками на любом из уровней, весь серверный сброс и остальные сеансы пользователя закрываются. причина, по которой перезапускается сервер, заключается в том, что я использую forever start app для запуска своего приложения, в противном случае он полностью отключается.Сервер Node.js сбрасывается при ошибке пользователя

  1. как остановить сервер до полной остановки, когда только один пользователей встречает какую-либо ошибку?

  2. Как запустить каждого пользователя в отдельном потоке (по потоку я имею в виду изолированную среду)?

+0

Добро пожаловать на переполнение стека! Возможно, вы захотите проверить [как задать вопрос] (http://stackoverflow.com/help/how-to-ask). Правильное форматирование вопроса поможет вам получить ответ, который вы ищете. –

+0

Реальная проблема заключается в том, что вы не обрабатываете ошибку изящно. Я бы рекомендовал начать с трех основных статей этого поиска: https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=nodejs%20graceful%20error%20handling –

+0

Вы «определенно неправильно обрабатывает ошибку, и ваш сервер терпит крах, но перезапускается навсегда. Нам нужно увидеть ваш код. Для этого вам не нужно использовать многопоточность. – Chev

ответ

2

Учитывая @Michael «s ответ

, к сожалению, это не то, как работает узел. Необработанная ошибка может привести к перезапуску сервера .

Единственный способ - надлежащим образом обрабатывать исполнительные процедуры. Таким образом, вы можете проверить this answers комментарии о том, как обращаться с uncaughtException

var handleRequest = function(req, res) { 
    res.writeHead(200); 
    res1.end('Hello, World!\n'); 
}; 
var server = require('http').createServer(handleRequest); 
process.on('uncaughtException', function(ex) { 
    // do something with exception 
}); 
server.listen(8080); 
console.log('Server started on port 8080');