Vlad
не надо так
Vlad
pcJson назови хотя бы
Quiet
Ленивая загрузка?! 😄
пр на гит конечно хорошо, но я сейчас учу node. Там нужно не сложно выполнять дз. Должно быть понятно)
И нужно самому все написать, что бы понимать)
Sergey
Ну тебе надо в функции проверить пуста ли переменная в модуле
Quiet
pc = pc()
(node:13064) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: pc is not a function
Sergey
Если пуста выполнить запрос и сохранить в переменную
Sergey
Всегда возращать промис
Sergey
Если не пуста
Quiet
без асунка тоже говорит, что пс это не функция
Sergey
return Promise.resolve(cachePc)
Quiet
Vlad
Sergey
Sergey
Вот
Почти также, только без функции addToCache
Vlad
А у тебя точно возвращается что то из последнего then?
Sergey
Ага
Sergey
Там же return a = b
Sergey
Если упростить
Quiet
https://github.com/dns2316/skb3
🌚
import pc from './pc';
import _ from 'lodash';
export default async (req, res) => {
let pcInf = await pc();
let sizeC = _.sumBy(_.filter(pcInf.hdd, { volume: 'C:' }), 'size');
let sizeD = _.sumBy(_.filter(pcInf.hdd, { volume: 'D:' }), 'size');
return 'C: ' + sizeC + ' ' + 'D: ' + sizeD;
}
Sergey
🌚
app.get('/3a/volumes', async (req, res) => {
res.json(await volumes());
});
🌚
не знаю зачем
Sergey
Славик
?_?
Vlad
Sergey
биндинг забыли
Vladimir
можно
Vladimir
биндинг
Vladimir
Vlad
Оно уже забиндено
Sergey
бля
Sergey
опять я что-то пропустил
Vlad
Напиши console в репле
Anonymous
Sergey
помню, что как-то осыпался на такой фигне
Vlad
Log bound console.log
Vladimir
ну спека к ноде не имеет отношения
Anonymous
ну от ноды и браузеры понабрались вообще-то
Anonymous
и правильно сделали
Vladimir
эт да
Sergey
раньше нельзя было
Nikolay
В каком-то из IE вроде не работает без байнда.
Anonymous
раньше — это давно
Anonymous
в каком-то ие и не надо в консоль писать
Anonymous
в каком-то еще более древнем ие вообще нет консоли в глобале
Sergey
ладно
Sergey
посыпаюсь
Anonymous
еще браузеры скоро наберутся от ноды global.global
Anonymous
pljhjdj ,eltn
Quiet
🌚
ну сейчас там только две буквы
Ramil
Все привет, что-то затупил я конкретно, не подскажете как реализовать красиво вот такое:
есть контроллер, в котором реализована функция логина
User.findOne({login: login}, function(err, user) {
if (!user) {
return res.status(401).send("The username don't match");
}
user.comparePassword(password, function(err, isMatch) {
if (err) throw err;
if (!isMatch) return res.status(401).send("The password don't match");
});
Ramil
comparePassword описан в модели вот так
userSchema.methods.comparePassword = function(candidatePassword, cb) {
bcrypt.compare(candidatePassword, this.password, function(err, isMatch) {
if (err) return cb(err);
cb(null, isMatch);
});
};
Ramil
в контроллеере я хочу чтобы все это выглядело вот так:
if (!user) return // username don't match
if (!user.comparePassword) return // password don't match
return // OK
Ramil
если кто-то что-либо понял, был бы рад за помощь, спасибо
Sergey
асинхронщина же
Savo
почему пул функций в функции назяывается именно замыканием?) как это связано)
Ramil
может как то переписать пограмотней возможно?
Ramil
асинхронщина же
Anton
посмотри на virtual field для comparePassword
Anton
http://mongoosejs.com/docs/guide.html#virtuals
Ramil
я понимаю что это потому, что функция замыкает на себя переменные внешней функции, подробнее на javascript.ru)
Ramil
почему пул функций в функции назяывается именно замыканием?) как это связано)
Ramil
Спасибо, Антон, гляну
Anton
хотя нет, ты ведь в свойство не сможешь пердать candidatePassword
Anton
разве что ты его где-то в модели сторить будешь, но это бред
Anton
и не “ username don't match”, а “ username/password doesn't match”
Ramil
да, username/password, верно
Ramil
можно конечно не запариться, и ОК отправлять прямо в comparePassword если isMatch == true
Ramil
но это мне кажется bad practice
Anton
ну если это в мидлвере, то да
Anton
а если не матчится, то next(createError(422, ‘Incorrect password’) (https://www.npmjs.com/package/http-errors)
Anton
но если сильно хочешь сделать что-то типо if (!user.comparePassword) return, то можешь попробовать впихивать в модель пароль с которым юзер делает реквест, а user.comparePassword сделать как virtual prop
Anton
но это все костыли какие-то
Anonymous
#whois Валерий
работаю удалённо JS/frontend/cordova/ios
могу помочь в вопросах про администрирование Linux, регресс тестах *JS
буду задавать вопросы по программированию
живу в РФ/МО
пришёл сюда из ВК группы нетологии
С ходу вопрос - чем отличается пункты:
▫️В чём вы специалист?
▫️Чем можете быть интересны или полезны сообществу?
Может про специалиста сократить пункт?
Ramil
да, еще подумаю, а так спасибо большое за советы
Anton
та не за что, пиши если что