Size: a a a

JavaScript.Ninja

2020 June 10

V

VATARION in JavaScript.Ninja
Nikolai Reguliarniy
примитивы передаются по значению, обьекты по ссылке
соответственно вам надо передавать всегда везде ссылку на один и тот же обьект, если мутируете его
или же наоборот передавать актуальный обьект, если делаете все иммутабельно
спасибо за ответ, но моя проблема видимо связана с механизмом работы обработчика событий, почти заборол.
источник

E

Elfi in JavaScript.Ninja
Elfi
Доброй ночи.

Написала авторизацию через Passport.js, возникла необходимость выводить сообщение об ошибке в форме авторизации. Попыталась разобраться с Flash Messages, но не могу вытащить сообщение из req.flash()

Роут:
router.get('/login', (req, res) => {
 console.log('req.flash', req.flash())
 console.log('req.flash', req.flash('error'))
 const test = {
   allMSG: req.flash(),
   messages: req.flash('error'),
   err: req.flash()['error'],
 }
 console.log('req.test', test)
 res.render('auth/loginV2', {
   link: 'login',
   message: req.flash('error')  })
})
router.post('/localauth', passport.authenticate('local', {
 successRedirect: '/',
 failureRedirect: '/auth/login',
 failureFlash: true,
}))


Passport strategies local-login:
....
const local = new LocalStrategy(
.....
   try {
     user = await User.findOne({
       where: { email: email },
     })
     if(!user) {
.....
       return done(null, user)
     }
     else if (!await user.validPassword(password)){
       console.log('User password is invalid')
       return done(null, false, {message: 'User password is invalid'})
     }
     else {
       return done(null, user)
     }
   } catch( err) {
       return done(err)
     }
 },
)
module.exports = local


в консоли сервера:
User password is invalid
POST /auth/localauth 302 66 72.694ms [+7s]
req.flash { error: [ 'User password is invalid' ] }
req.flash []
req.test { allMSG: {}, messages: [], err: undefined }


В общем, вопрос:
Как обратиться к error внутри функции flash?
Ребят, поможете?)
источник

DN

Dima Nazdratenko in JavaScript.Ninja
подскажите как красивее)
Правила именований функций гласят, что бы их начинали с глагола
А переменные типа boolean с is

А как назвать функцию которая делает проверку и возвращает true или false?

Тоже с is? или комбинировать аля checkIsObjectDuplicate?

Посоветуйте)
источник

MK

Maks Kravchenko in JavaScript.Ninja
в итог получим булевое значение
isObjectDuplicated
источник

DN

Dima Nazdratenko in JavaScript.Ninja
Maks Kravchenko
в итог получим булевое значение
isObjectDuplicated
ага, ну тоесть независимо функция это с итого булеан или просто булеан переменная лучше начинать с is
ок, спасибо)
источник

MK

Maks Kravchenko in JavaScript.Ninja
да)
если бы функция ничего не возвращала и выкидывала ошибку в случае дублирования, то было бы что-то типа checkIfObjectIsDuplicated
источник

D

Dimitrii in JavaScript.Ninja
Elfi
Ребят, поможете?)
А можно минимальный не рабочий пример в каком-нибудь sandbox? Или снипет кода, чтобы скопипастить и запустить. Мне сложно восстановить контекст, код, и поток данных, дабы понять где и какую ошибку надо выбросить
источник

E

Elfi in JavaScript.Ninja
Dimitrii
А можно минимальный не рабочий пример в каком-нибудь sandbox? Или снипет кода, чтобы скопипастить и запустить. Мне сложно восстановить контекст, код, и поток данных, дабы понять где и какую ошибку надо выбросить
https://playcode.io/619070/

так? или еще что то нужно?
источник

D

Dimitrii in JavaScript.Ninja
Надеялся увидеть что-то вроде этого https://codesandbox.io/embed/k0j3xqnw27?codemirror=1
источник

D

Dimitrii in JavaScript.Ninja
Расскажу ржаку. В компании на уровне стайгайда и усного соглашения принято называть тестируемую в юнит(!) тестах сущность systemUnderTest. Угадайте зачем? Чтобы найти её среди десятков моков! Так в доке и написано.
источник

E

Elfi in JavaScript.Ninja
пока готовила ответ пришло понимание, что когда я вывожу в console.log(req.flash("loginMessage"))
то ниже по коду флеш уже пустой 🤦‍♀️
источник

IK

Illya Klymov in JavaScript.Ninja
логично :) вы уже "съели" флеш :)
источник

Z

Zamir in JavaScript.Ninja
привет! такая ситуация, есть библиотека в npm, но есть моменты которые мне надо костомизировать, но библиотека этого не позволяет, нормально ли склонировать его себе, поправить то что надо убрать лишнее и себе в проект вставить?

просто так раньше никогда не делал, решил уточнить)
источник
2020 June 11

NR

Nikolai Reguliarniy in JavaScript.Ninja
Dima Nazdratenko
ага, ну тоесть независимо функция это с итого булеан или просто булеан переменная лучше начинать с is
ок, спасибо)
Можно с has/have/should еще
источник

NR

Nikolai Reguliarniy in JavaScript.Ninja
Zamir
привет! такая ситуация, есть библиотека в npm, но есть моменты которые мне надо костомизировать, но библиотека этого не позволяет, нормально ли склонировать его себе, поправить то что надо убрать лишнее и себе в проект вставить?

просто так раньше никогда не делал, решил уточнить)
Я бы сделал свой форк и подключил в package.json как прямую ссылку на гитхаб. Заодно и автору можно PR будет предложить из этого форка
источник

NR

Nikolai Reguliarniy in JavaScript.Ninja
Если PR примут, то ссылку меняем на версию и импорты трогать не нужно будет
источник

TG

Timofey Goncharov in JavaScript.Ninja
Переслано от Timofey Goncharov
бабель оставляет в ts файлах мои алиасы (tsconfig.paths)

Почему так?
источник

Z

Zamir in JavaScript.Ninja
Nikolai Reguliarniy
Я бы сделал свой форк и подключил в package.json как прямую ссылку на гитхаб. Заодно и автору можно PR будет предложить из этого форка
спасибо
источник

IK

Illya Klymov in JavaScript.Ninja
Timofey Goncharov
Переслано от Timofey Goncharov
бабель оставляет в ts файлах мои алиасы (tsconfig.paths)

Почему так?
Потому что Бабель вообще этим не занимается
источник

IK

Illya Klymov in JavaScript.Ninja
Бабель работает пофайлово :)
источник