Я пытаюсь выяснить, как работает обработка ошибок в Sails. js. К сожалению, примеры кода в документации не охватывают этот вариант использования.
Проблема в том, что я продолжаю получать эту ошибку:
UsageError: `.intercept()` handler returned `undefined`, but this should never happen.
Regardless, here is a summary of the original underlying error:
Теперь все, что я пытаюсь сделать, это вызвать помощника и если это не удается, то я хочу поймать ошибку (любую), зарегистрировать ее и запустить некоторый код. Если бы я не использовал Sails, но обычные обещания, я бы обработал это так:
await helper().catch((err) => { // run some code }
В Sails я мог бы использовать .intercept () вместо .catch ()
Мой код выглядит следующим образом:
// ExportController.js
const csv = await sails.helpers.files.convertToCsv(data)
.intercept((err) => {
sails.log.error(err)
req.addFlash('error_messages', 'Error parsing data to csv!')
return res.redirect(`/`);
})
// convert-to-csv.js
if (!Array.isArray(inputs.data)) {
throw new Error('invalid inputs.data type: ' + typeof inputs.data)
};
Теперь, как мне избежать этой ошибки? примеры кода показывают только случаи, когда ошибки, явно добавленные в объект exits, обрабатываются, но не для общей обработки ошибок. В документации говорится, что если аргумент фильтра
не предоставлен, ВСЕ ошибки будут перехвачены.
Или это верно только для БД запросов? Поскольку раздел .intercept () do c находится в этой подкатегории.