Перехватывать больше ошибок
monolithed opened this issue · 6 comments
Еще не дебажил, но в catch практически ничего не приходит, например:
ER_INVALID_MSGPACK: Invalid MsgPack - packet body
Illegal parameters, name should be a string
Tuple field count 3 is less than required by a defined index (expected 4)
Эти ошибки есть в логах, но нет в catch
В catch от запроса?
Ну там в связи с асинхронностью протокола не понятно куда прокидывать ошибку типа пришел к тебе ответ, а ты не смог его распарсить и к какому он запросу непонятно.
Как пример,
local name, host = 1, 2
space:create_index('primary', {
parts = {
host, 'str'
}
})
space:create_index('secondary', {
type = 'tree',
unique = false,
parts = {
name, 'str'
}
})tarantool.insert(space_id, ['key', 1])
.then(result => {
tarantool.destroy();
})
.catch(error => {
console.log(error);
// Сюда не зайдет, хотя явно должен сообщить о проблеме:
// Illegal parameters, name should be a string
// Эту ошибку тарантул должен прокидывать, раз в логах она есть
})
;Попытка вставки элемента с другим типом.
Понял.
Tuple field count 3 is less than required by a defined index (expected 4)
У меня такое выводится, а вот другой тип сейчас проверю.
Хм. про тип я немного ступил. У меня в действительности код выглядит примерно так:
tarantool.connect()
.then(status => {
return tarantool.insert(space_id, [...]).then(status => {
return tarantool.select(space_id, 1, 0xffffffff, 0, 'eq', ['key']);
}, reject);
})
.then(result => {
tarantool.destroy();
})
.catch(error => {
console.log(error);
})
;Я сам не делал реджект из tarantool.insert. Похоже :)
А как версия tarantool и nodejs?
У меня выводятся такие ошибки на node 0.12.2 и tarantool 1.6.5. Добавил тест попробуй у себя запустить.
Tarantool 1.6.5-249-g06d4d66
Node v0.12.7