Zaur
если ты руками вызываешь, то нет кеширование производится внутри require
Если я правильно понял через require кешируется подключаемый модуль. Т.е. если надо кешировать содержимое загружаемого .txt файла, тогда это надо самому делать в своем модуле, который загружает эти txt файлы?
Ilnur
есть такая штука как deferred. Вопрос почему это плохо? Или почему это не совсем промисы? Хотя на деле имеем дело только с промисами
Ilnur
вот по-любому уверен что с async есть такой же маленький нюанс
Ohar
есть такая штука как deferred. Вопрос почему это плохо? Или почему это не совсем промисы? Хотя на деле имеем дело только с промисами
Потому что это старая немного кривенькая попытка сделать промисы на костылях. Она не плохая, она рабочая, просто… сравнивать их с промисами это примерно как сравнивать новую машину с гаражной самоделкой. Они обе ездят и вроде не ломаются, но…
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
а вообще это нормальная практика, делать такие кастомные модули? или как их правильно назвать
для библиотек нет но для проектов, почему нет? главное в readme описать
Ilnur
Это неплохо, вполне удобно иногда
Это жутко удобно, и читабельнее я бы еще сказал. Но так порой можно потерять ошибки
Sergey
там обычный модуль кстати
Zaur
там обычный модуль кстати
да, я уже понял) спасибо
Sergey
все же в курсе, что можно ноду отлаживать в хромовых devtools?
Sergey
npmjs.com/devtool
Zaur
все же в курсе, что можно ноду отлаживать в хромовых devtools?
смотрил в скринкасте http://learn.javascript.ru/screencast/nodejs
Ilnur
Неее))))
Sergey
я был счастлив когда надыбал
Ilnur
--inspect есть такой флаг у ноды
Ilnur
так же в хроме открывается
Sergey
есть но это ж не оч
Sergey
тут проще devtool file.js и всё
Ilnur
Ну если честно хз. Я пользуюсь vcode как бы дебаггер полностью устаивает
Sergey
я тож но иногда нехватает
Ilnur
плюс всеравно прописываем какой нид автомотизатор аля npm run serve туда можно и флаги класть, лично такое предпочитаю
Ohar
Очень полезно, спасибо
Ohar
Правда, есть один нюанс >require.extensions >Added in: v0.3.0 >Deprecated since: v0.10.6
Ohar
Да, ещё не выпилили
Ohar
>Since the module system is locked, this feature will probably never go away.
Sergey
Ну когда будут es6 модули эта штука конечно работать не будет
Vladimir
А она уже где то есть?
Пока что в голове
Sergey
почему?
Там другая реализация
Ale
никто не мешает продолжать вызывать для экстеншна эту функцию и заворачивать в v8module в module._compile
Sergey
Ты не читал как устроены новые модули?
Sergey
Их код не исполняется, а только парсится и т.д.
Vladimir
Никак они не устроены
Sergey
Но если они реализуют новым типом файлов. То ок
Ale
Их код не исполняется, а только парсится и т.д.
ты про статическую природу import/export? Ну да
yarastqt [msk +1 week]
Подскажите по монгусу, есть поле в схеме, у этого поля есть сеттер туда передаю строку startTime: { type: Number, set: normalizeTimeToUnix } Когда создаешь документ, то все ок - сеттер срабатывает, но когда обновляешь его - сперва срабатывает тайп чекинг, и выбрасывает ошибку. Можно как-то сделать сэт а потом сделать проверку? Или лучше вынести такое дело в хук?
Alexey
Подскажите, passport-local принимает только два аргумента? username password?
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, точно не скажу
yarastqt [msk +1 week]
Для авторизации JWT использовал