Gor
@Romshark спасибо.
Anonymous
Roman
исключение = неожидаемая, фатальная ошибка после которой обычный control flow не должен продолжаться (однако можно словить, чтоб не повалилась совсем)
классический пример = неверный тип параметра, после такого нельзя продолжать
ошибка = ожидаемая ошибка, после которой можно спокойно продолжать работать
например "файл не найден"
Anonymous
Oleh
Ето всё я понял, как тогда обрабатывать такое поведение?
Anonymous
Тогда у тебя в catch будет оставаться только реально неведомая хуйня.
Anonymous
Roman
иключение? - throw
ошибка? - return { actualResult, new Error() }
Anonymous
Anonymous
Maybe, Either.
Oleh
https://github.com/chrissrogers/maybe ?
Oleh
Ясно, спасибо, буду думать
Roman
Nurik
Ето всё я понял, как тогда обрабатывать такое поведение?
Написать обработчик ошибок, который глобально доступен. передавать объекты ошибок в него без throw. Ну и return. А исключения на то и исключения. Что обрабатывают только исключительные ситуации. Ошибка валидации например это не исключение а именно ошибка.
AI
Oleh
@nurik6 можно какие-то примери всего этого увидеть? Хочу посмотреть как такое в реальных приложениях действует
сomorsiс
AI
нет, 30 игроков не всего, а ожидаемо максимум на одной локации.
Nurik
@nurik6 можно какие-то примери всего этого увидеть? Хочу посмотреть как такое в реальных приложениях действует
Ну в самом простом случае, пишешь модуль, который возвращает отнаследованный EventEmitter. Делаешь его синглтоном. Внутри принимаешь объекты ошибок, либо если это не объект то значит код http либо другой частоиспользуемый код по которому можно распознать тип ошибки. Затем там где нужно вызываешь обработчик и делаешь emit с объектом ошибки. Ну и в конец midleware пайплайна добавляешь обработчик ошибок и в самом низу обработчик исключений. А исключения будут всплывать. Как-то так.
Nurik
и две папочки exceptions и errors в корне проекта. В errors может быть сколько угодно сложная иерархия ошибок как и в exceptions.
Nurik
Но с этим подходом есть проблемы. Нужно не забывать делать return после каждого errorHandler.emit(), иначе — жопа.
Gor
это не проблема. это требование к пониманию работы JS)
Alex
AI
Elijah
🖖
Danny
☝️
Obi
здравствуйте, подскажите с вопросом про passport.js
Obi
у меня есть схема в монге, вот такого вида
Obi
password: String,
username: String,
level: String
Obi
и использую passport-local, вот, сделал такую серилизацию
Obi
passport.serializeUser((user, done) => {
done(null, {
username: user.username,
level: user.level
});
});
passport.deserializeUser((username, done) => {
User.findOne({username: username}, (err, user) => {
done(err, user);
})
});
Obi
на строчке с поиском юзера монго кидает ошибку
Obi
CastError: Cast to string failed for value "{ username: 'test',
Obi
хотя username не undefined, оно приходит, но почему не каститсья, не могу понять...
Obi
но если прокинуть просто объект юзера, а не поля в объект, то потом, почему то, этот объект позварщаяется как null...
AI
У тебя ответ в коде.
Obi
черт, смотрю
Obi
хм... можно строчку пожалуйста
Obi
уф)
Obi
passport.deserializeUser((user, done) => {
User.findOne({username: user.username}, (err, user) => {
done(err, user);
})
});
Obi
спасибо)
Aleksandr
Народ, есть вопрос. Кто знает что с гитхабом https://github.com/AlexStrNik/BlocXus/blob/master/backend.js?
Aleksandr
почему-то именно этот файл очень странно отображается
Cenator 🐈
Aleksandr
да, не с мака же
Gor
@AlexStrNik смотри https://github.com/AlexStrNik/BlocXus/commit/21ab1a9ede7b0507d4f285f049997e0ed285c10c
Gor
у тебя давно и упорно кодировка файлов такая
Gor
смотри настройки редактора
Igor
Тут есть кто нибудь умный, кто может сформулировать жизненный кейс когда происходит нарушение целостности данных?
Igor
https://ru.m.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BB%D0%BE%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8
Vitaly
нормально объяснил?
Igor
Ну я хочу убедиться правильно ли я понял.
Igor
Таймураз
Таймураз
При этом клиент принимал все остальные пакеты, но не мог завершить сеанс передачи так как не хватало последнего
Было охуенно
Nurik
Nurik
Причем то что в архиве — нифига не помеха.
Таймураз
Eugene
Доброго времени суток :)
Юзаю mailgun для отправки почты, хочу например отправлять письма с noreply@example.com
Как запретить отправку почты c нашего домена - всем кроме нас?
Вроде как-то через SPF делается, но точно хз
Хз в каком чатике еще задать вопрос - если есть чатик по теме - то дайте ссылку:)
То есть сейчас тупо могут отправить вот таким скриптом сообщение.
<?php
$to = "VICTIM@example.com";
$subject = "Password Change";
$txt = "Change your password by visiting here - [VIRUS LINK HERE]l";
$headers = "From: support@example.com”;
mail($to,$subject,$txt,$headers);
?>
Eugene
🤔
Gor
@HellPirate spf TXT = "v=spf1 ip4:YOURIP -all"
Gor
но он не запретит другим отсылать почту
Cenator 🐈
Gor
а лишь скажет почтовикам кто проверяет SPF что источник откуда идет почта от вашего имени не доверенный
Cenator 🐈
не надо сюда это тащить
Mykola
import { Promise } from "bluebird";
export class ClassNmae {
private async someFun() {
const res = await this.getSomeResult()
}
private getSomeResult() {
}
}
Mykola
error TS2529: Duplicate identifier 'Promise'. Compiler reserves name 'Promise' in top level scope of a module containing async functions. как это пофиксить?
Dmitry
А что, в JS уже появились public, private ? )))
Cenator 🐈
ℝei
Mykola
Cenator 🐈
Cenator 🐈
Cenator 🐈
а, не, если промис вернешь то ок
Mykola
Mykola
Mykola
private getCoinMarketCapPrices(currency: string) {
return new Bluebirb((resolve, reject) => {
this.client.getTicker({limit: 0, convert: currency}).then((prices: any) => {
resolve(prices);
});
});
}
Mykola
Переписую с promise на async первая проба, что можно улутшить ?.