powered by simpleCommunicator - 2.0.47     © 2025 Programmizd 02
Форумы / Серверный JavaScript (Node.js, Ringo, Nitro, Sling) [игнор отключен] [закрыт для гостей] / [node.js][express] как отловить ошибки? как проверить к каким событиям уже привязаны обраб
2 сообщений из 2, страница 1 из 1
[node.js][express] как отловить ошибки? как проверить к каким событиям уже привязаны обраб
    #38321561
zloyGamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, подскажите как можно отловить ошибки стандартным обработчиком on('error',fnc);
в express
вот например:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
var sys = require('util');
var express = require('express');
var app = express();

app.on('error',function(e){
  //в случае ошибки выводим подробную информацию и в случае EADDRINUSE пробуем перезапустить сервер
  console.log('ERROR ERROR ERROR ERROR ERROR!!');
  console.log(sys.inspect(e));
  if(e.code == 'EADDRINUSE'){
    console.log("Address in use, retrying...");
    setTimeout(function() {
      app.listen(80);
    }, 1000);
  }
});

app.all("*",function(req, res){ //все запросы обрабатываются тут
    console.log("url:"+req.url);
    if(req.url=="/test"){ 
      res.writeHead(200, {"content-type" : "text/html; charset=utf-8"});
    }
    res.send("url="+req.url);
});

app.listen(80);
console.log("app start");


но если запустить его уже при запущенном сервере то процесс останавливается и выдает стандартное:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
app start

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: listen EADDRINUSE
    at errnoException (net.js:670:11)
    at Array.0 (net.js:771:26)
    at EventEmitter._tickCallback (node.js:192:40)


т.е. событие app.on('error',function(e) - не срабатывает и останавливает процесс..
подскажите как отдебагить и как получить информацию какие события доступны и какие уже обрабатываются?
...
Рейтинг: 0 / 0
[node.js][express] как отловить ошибки? как проверить к каким событиям уже привязаны обраб
    #38322412
zloyGamer,

для обработки ошибок векспресе нада использоваль middlewear. В вашем случаи код в таком стиле
app.use(function(err, req, res, next) {
if(!err) return next(); // you also need this line
console.log("error!!!");
res.send("error!!!");
});
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Серверный JavaScript (Node.js, Ringo, Nitro, Sling) [игнор отключен] [закрыт для гостей] / [node.js][express] как отловить ошибки? как проверить к каким событиям уже привязаны обраб
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]