Ilnur
есть такая штука как deferred. Вопрос почему это плохо? Или почему это не совсем промисы? Хотя на деле имеем дело только с промисами
Sergey
Sergey
Ilnur
вот по-любому уверен что с async есть такой же маленький нюанс
Ilnur
Ilnur
Ohar
Vladimir
Zaur
через require кешируется не модуль, а результат его выполнения
require.extensions['.txt'] = function(module, filename) {
const s = fs.readFileSync(filename, 'UTF8');
console.log('s:', s);
return s;
};
var string = require('./file.txt');
console.log('string:', string);
В файле file.txt строка вида string 1. В консоли вижу:
s: string 1
string: {}
Что я делаю не так?
Sergey
а
Sergey
s.toString()
Sergey
он ж как Buffer читает
Sergey
я забыл
Zaur
в моем варианте typeof s показывает string, зачем там toString? но все равно проверил, результат тот же string: {}
Sergey
а
Sergey
погоди
Sergey
я наебал немного
Sergey
сорян
Sergey
Zaur
module.exports = s; ))
Zaur
да, я уже допер ))
Sergey
Zaur
разобрали маленький пример, а столько нового узнал про ноду :)
Alexander
Ребят сталкивался кто??? ssh: connect to host xxxxxx port 22: Connection timed out с чем это связано??
Zaur
а вообще это нормальная практика, делать такие кастомные модули? или как их правильно назвать
Sergey
Sergey
там обычный модуль кстати
Sergey
все же в курсе, что можно ноду отлаживать в хромовых devtools?
Sergey
npmjs.com/devtool
Ilnur
Неее))))
Sergey
я был счастлив когда надыбал
Ilnur
--inspect есть такой флаг у ноды
Ilnur
так же в хроме открывается
Sergey
есть
но это ж не оч
Sergey
тут проще
devtool file.js и всё
Ilnur
Ну если честно хз. Я пользуюсь vcode как бы дебаггер полностью устаивает
Sergey
я тож
но иногда нехватает
Ilnur
плюс всеравно прописываем какой нид автомотизатор аля npm run serve туда можно и флаги класть, лично такое предпочитаю
Dmitrii
Ohar
Ohar
Правда, есть один нюанс
>require.extensions
>Added in: v0.3.0
>Deprecated since: v0.10.6
Sergey
Ohar
Да, ещё не выпилили
Ohar
>Since the module system is locked, this feature will probably never go away.
Sergey
Ну когда будут es6 модули эта штука конечно работать не будет
Vladimir
Ale
Sergey
почему?
Там другая реализация
Ale
никто не мешает продолжать вызывать для экстеншна эту функцию и заворачивать в v8module в module._compile
Sergey
Ты не читал как устроены новые модули?
Sergey
Их код не исполняется, а только парсится и т.д.
Vladimir
Никак они не устроены
Sergey
Но если они реализуют новым типом файлов. То ок
yarastqt [msk +1 week]
Подскажите по монгусу, есть поле в схеме, у этого поля есть сеттер туда передаю строку
startTime: {
type: Number,
set: normalizeTimeToUnix
}
Когда создаешь документ, то все ок - сеттер срабатывает, но когда обновляешь его - сперва срабатывает тайп чекинг, и выбрасывает ошибку. Можно как-то сделать сэт а потом сделать проверку? Или лучше вынести такое дело в хук?
Alexey
Подскажите, passport-local принимает только два аргумента? username password?
yarastqt [msk +1 week]
Alexey
А я думал можно через него зарегистрировать юзера, там email, firstname, lastname и т.д. Получается только username и password
yarastqt [msk +1 week]
Да кстати, если важно, то обновляю через метод findOneAndUpdate
yarastqt [msk +1 week]
мб кто знает
yarastqt [msk +1 week]
Либо как вариант сперва получить документ, затем в ручную задать все поля типо
document.field = value
а затем вызвать save на этом документе
Alexey
Подскажите как можно передать сообщение об ошибках passport на клиент, через flash? Если да, то как? Я работаю с react.
yarastqt [msk +1 week]
Ты xhr посылаешь на сервер?
yarastqt [msk +1 week]
покажи лучше код
Alexey
Нет, я просто один раз обращаюсь к index.html а там дело за реактом
Alexey
router.post('/user/signup', passport.authenticate('local.signup',{
successRedirect: '/',
failureRedirect: '/signup',
failureRedirect: true
}));
Alexey
сам запрос к регистрации
Alexey
app.use('/', routers); // роутеры
app.get('*', function response(req, res) {
res.sendFile(path.join(__dirname, 'index.html'));
});
yarastqt [msk +1 week]
м... просто не совсем знаю как с passport js работать в SPA, но как у тебя сделано явно не прокатит, редиректы тут не нужны т.к. у тебя spa
Alexey
емае, ладно, буду думать
yarastqt [msk +1 week]
должно быть как-то так примерно:
yarastqt [msk +1 week]
api.post('/signin', (request, response) => {
passport.authenticate('local', (error, user, info) => {
if (error) {
response.status(401).json({ error });
}
});
});
yarastqt [msk +1 week]
ну честно не работал почти с passport, точно не скажу
Alexey
yarastqt [msk +1 week]
Для авторизации JWT использовал