Обработка ошибок в node.js - PullRequest
       4

Обработка ошибок в node.js

0 голосов
/ 21 февраля 2012

Я хочу создать mongoID, используя фрагмент URI в качестве источника.Однако, если URI действительно не содержит правильно отформатированный mongoId, я получаю следующее сообщение об ошибке:

Что я должен изменить, чтобы разрешить создание _id без выдачи ошибок, так как упаковка в блок try/catch этого не делает?

Ошибка:

500 Ошибка: переданный аргумент должен быть одной строкой из 12 байтов или строкой из 24 шестнадцатеричных символов в шестнадцатеричном формате

Код:

var _id = db.bson_serializer.ObjectID.createFromHexString(req.params.id);

this.db.users.findById(_id, function(err, doc) {
    if (!err && !!doc) { res.send(JSON.stringify(doc)); } else {res.send(JSON.stringify({error: "Not found"));}
});

Я использую драйвер mongoskin.

1 Ответ

2 голосов
/ 21 февраля 2012

В этой строке выдается ошибка:

var _id = db.bson_serializer.ObjectID.createFromHexString(req.params.id);

Если вы оберните это в блок try / catch, это должно сработать.

var _id = null
try {
  _id = db.bson_serializer.ObjectID.createFromHexString(req.params.id);
} catch (err) {
  res.send(JSON.stringify({error: "Not found"}));
  return;
}

this.db.users.findById(_id, function(err, doc) {
  if (!err) { 
    res.send(JSON.stringify(doc)); 
  } else {
    res.send(JSON.stringify({error: err.message}));
  }
});

Это работает для вас?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...