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}) но с сообщениями
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
Можно редактировать и вместо сообщения поставить "точку". Вроде норм Варик
Nook
exception бывают разные
Nook
syntax error например
Farrux
uncaught
Nook
Cannot read property
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
Я не прав?
Nook
+
Так нельзя делать
Ohar
Как это получилось вообще?
Ohar
Vyacheslav
Aleksey
Чет трешак какой-то.
Sergo
как это теперь развидеть?
Aleksey
как это теперь развидеть?
Тебе что нибудь похуже надо скинуть чтобы ты это забыл?
Pavel
node.js -- русскоговорящее сообщество
Dima
Dima
сорян, не туда нажал.
Vladimir
Все будет хоршо в турбофане
Vladimir
инфа 100%
Paruyr
express.js не обновляется уже
вырезать вас надо. 5 альфа пилится. Оттуда все выносят на пакеты - роутер и т.д..
Anonymous
ребят
Anonymous
привет
Anonymous
ставлю генератор ангулар фуллстак
Anonymous
ставиться с кучей ошибок
Anonymous
потом делаю npm i
Anonymous
и вот что пишет
Anonymous
http://pastebin.com/aBt67bak
Vlad
http://pastebin.com/aBt67bak
Читай ошибки, гугли, исправляй
Anonymous
второй день уже так и делаю
Dreamerinnoise
Зависимость есть? Брат жив? Можно ещё ишьюс полистать в проекте
Anonymous
Гуглил ошибки
Anonymous
На гитхабе ишьюс там такая же проблема ни одного решения
Anonymous
Чето с node-pre-gyp
Anonymous
Решил переустановить убунту
Anonymous
И заново все поставить
Dima
Радикально
Igor
ну библиотек не хватило, каких нибудь -dev версий
Igor
чо сносить то всё
Anonymous
Все зависимости вручную поставил
Anonymous
Все ок кроме вот этого
Vlad
Чето с node-pre-gyp
ну так мб у тебя gcc старый