Pavel
someModel.someMethod(params, function(err, response) {
if (err) res.json({message: 'Error', error: err}) else res.json(response);
});
Pavel
предполагаю, что res.serverError просто валит сервак, а ты должен просто прокидывать ошибку и дальше ее обрабатывать где-то
Farrux
res.serverError тот же самое res.json({message: 'Error', error: err}) но с сообщениями
Farrux
Nook
eslint используй, чтобы никто такую херню не делал
Farrux
написал такую middleware
app.use((req, res, next) => {
process.on('uncaughtException', (err) => {
return res.serverError(err);
});
next();
});
Pavel
app.use(function *(next) {
try {
yield next;
} catch (err) {
this.status = err.statusCode || err.status || 500;
this.body = {
message: err.message
};
}
});
Pavel
что-то такое должно быть
Pavel
и да, оно должно быть в самом верху
Pavel
перед всеми app.use
Farrux
не помогло
Nook
не помогло
Что ты хочешь чтобы перехватывалось?
Mykola
Можно редактировать и вместо сообщения поставить "точку". Вроде норм Варик
Farrux
Nook
exception бывают разные
Nook
syntax error например
Farrux
uncaught
Nook
Cannot read property
Farrux
Nook
Используй error-handler
Nook
Если ты не уверен в объекте используй _.get из lodash
Pavel
убери код, который валит все res.serverError(err)
Pavel
если оно валит , то сперва нужно это обыграть как-то, а ты видимо просто добавил middleware и такие строки у тебя остались по проекту, а их быть не должно, они должны прокидываться дальше и в middleware обрабатываться
Nook
Раньше были domains но теперь нужно писать нормальный код который не будет тебе такие ошибки генерировать
Nook
И не обращаться к объекту вслепую a.b.b.s.s
Nook
а чтобы не было ошибок типо "foo is not defined" используй eslint
Nook
И вообще, зачем тебе уведомлять пользователя о какой-то ошибке?
Nook
uncaughtException предназначен для того, чтобы отправить тебе email или какой-то багрепорт для твоей немедленной реакции и положить сервак
Farrux
да, модель ждет от базы объект, если поля не пришли полным происходит ошибкаfoo is not defined я как то должен сообщить об ошибке и продолжать принимать другие запросы
Nook
if (foo) {}
Pavel
ну так нужно дождаться данных с бд
Pavel
тут либо на промисах, либо async await, либо генераторы
Nook
По старинке на callback
Дима
Дух старой школы
Nook
Смысла нет, что использовать. Если ты обращаешься к объекту, обращайся через новый Proxy или через require('lodash').get например
Nook
mongoose решил это через get/set например
Vladimir
Proxy это оверкил
Vladimir
Просто надо код нормально писать, с проверками
Nook
Я сказал как пример
Nook
Человек хочет использовать uncaughtException и после продолжать работать
Nook
Когда uncaughtException это последний поинт перед завершением процесса в случае ошибки
Nook
Я не прав?
Farrux
Nook
Ohar
Ohar
Как это получилось вообще?
Ohar
Vyacheslav
Aleksey
Чет трешак какой-то.
Sergo
как это теперь развидеть?
Pavel
node.js -- русскоговорящее сообщество
Sergo
Dima
Dima
сорян, не туда нажал.
Vladimir
Все будет хоршо в турбофане
Vladimir
инфа 100%
Anonymous
ребят
Anonymous
привет
Anonymous
ставлю генератор ангулар фуллстак
Anonymous
ставиться с кучей ошибок
Anonymous
потом делаю npm i
Anonymous
и вот что пишет
Anonymous
http://pastebin.com/aBt67bak
Anonymous
второй день уже так и делаю
Dreamerinnoise
Зависимость есть? Брат жив?
Можно ещё ишьюс полистать в проекте
Anonymous
Гуглил ошибки
Anonymous
На гитхабе ишьюс там такая же проблема ни одного решения
Anonymous
Чето с node-pre-gyp
Anonymous
Решил переустановить убунту
Anonymous
И заново все поставить
Dima
Радикально
Igor
ну библиотек не хватило, каких нибудь -dev версий
Igor
чо сносить то всё
Anonymous
Все зависимости вручную поставил
Anonymous
Все ок кроме вот этого
Anonymous