Dika
Cheslav
я сделал
Cheslav
web: npm i ./ && npm run babel-node ./
Cheslav
или nodemon вначале
Cheslav
хотя он локально стоит
доня.
скрипты из package.json добавляют в PATH ./node_modules/.bin
Cheslav
можно подробнее?)
Alex
или npm i -g babel-node
доня.
ну типа ты можешь сделать "start": "babel-node" и даже если babel-node установлен локально, то npm run start сработает, а просто babel-node в консоли - нет
доня.
Cheslav
что то я пока все равно не въехал...
Sergey
V
Joi норм
Gleb
Ты юзал его для валидации входящих данных апи?
Эмм... Да, юзал немного. А что с ним не так? Особо специфичных кейсов не было, так по мелочи, пара строк, number и причие примитивы. Конечно на 40 полей желательно брать JSON Schema.
Sergey
Gleb
Да нормально справляется, просто нет, грубо говоря, возможности спокойно и вальготно тащить его на клиент или Mongoose модель превратить в joi валидатор.
Gleb
Он идеально подходит для сложных аргументов функций и всего такого. Так же я его юзал для проверки аргументов между микросервисами. Ну там данные с шины полвалидировать и всё такое. Короче, на том, что никак уж не может пригодится в другом месте.
Gleb
А так вообще joi пришёл из Hapi, он там для валидации используется. Это если ты его к своему детищу прикрутить хочешь)
Sergey
V
Джой в проще на валидация апи юзаю, полет нормальный, пришлось немного обернуть, но так норм и понятно
Дима
ajv
Sergey
Дима
Ага
Дима
Мне не нравится, что описание joi нельзя сериализовать в том виде, в котором оно реально присутствует в коде
Alexander
joi...
Alexander
а как же JsonSchema?
Sergey
Alexander
да
Alexander
это просто одна из самых удобных и толковых реализаций json схемы
Alexander
чем тяжелая?
Alexander
ajv быстро работает
Alexander
очень
Alexander
и есть еще быстрее реализации
Alexander
насчет описывать не удобно - тут каждому свое, но мне например joi вообще неподъемным показался
Sergey
Alexander
Json схема кстати очень удобная становится после пары функций-автоматизаторов, которые пишутся на коленке
Alexander
Alexander
это как вариант
Данил
Ребят, подскижете. канал "библиотека программиста" или канал "tproger" кидали большой лист с каналими телеги, в котором был и этот канал. не у кого не остался этот список. найти не могу
arts
Sergey
Sergey
В гитхабе дофига полей
Gleb
Alexander
а может там просто вложенность
arts
Понятно, что бывают такие кейсы, но в 90% случаев 40 полей значит, что с дизайном что-то не так.
Anonymous
Здравствуйте. Я тут уже бывал с вопросами потребления памяти в ноде. Снова с тем же. Нода тратит память выделяя её куче, и это зависит от наличиствующей в системе памяти. Если запустить скрипт с флагами, выделяющими память меньше, чем нода взяла бы по госту, то и скорость исполнения станет меньше? Скорость исполнения - это единственное с чем коррелирует такая манипуляция? Можно ли прямо в скрипте программно ограничить ноду в потребляемых ресурсах? Как в cpu так и в ram.
В моих нынешних целях бывают моменты простоя, и накаких серьёзных нагрузок точно не придвидится, по этому хотелось бы урезать прожорливость по максимуму.
Sergey
Sergey
Лучше сразу все получить. Чем кусками
Таймураз
Anonymous
Раз так, то мне не о чем переживать.
Anonymous
Благодарю за информацию. Я ещё не проводил тесты на эту тему лично, хотя встречал мелкие скрипты с гита, которые в процессе работы сильно грузили систему. Хотя, происходящие процессы, кажется, не предвещали ничего подобного.
Таймураз
Sergey
https://www.nearform.com/blog/node-js-is-getting-a-new-v8-with-turbofan/
AI
Привет! Я задавал подобный вопрос, теперь интересует более глубокая реализация. Есть мультизагрузка, реализована она дерганьем загрузки одного файла с клиента.
На сервере sailsjs+skipper+skipper-disk
req.file('image').upload({
dirname: dirToSave,
saveAs: newFileName
}, function (err, uploadedFiles) {
if (err) {
return res.json({status: false});
}
return res.json({status: true, data: {filename: uploadedFiles.filename}});
});
проблема в том, что новый файл приходит когда предыдущий ещё не записан, и получаются или ошибки, или файл "склееный" из нескольких, "не баг, а фича" крутая, но хотелось бы правильной реализации.
Есть идея хранить состояние в переменной inProcess, и когда приходит новый файл проверять её на истину, если переменная ложна - то запускать setInterval секундный и раз в секунду пытаться дергатьпеременную и проверять.
Это пиздец костыль, ведь при очереди в 1000 файлов это будет хер знает что. Толкните в нужную сторону.
arts
Добавь к имени файла какой-нибудь хэш, например, чтобы гарантированно в разные файлы писать.
AI
у меня уникальная папка в которую сохраняю файлы, а сами файлы должны иметь номерованые имена. Хеш не вариант. Больше интересует реализация с сетинтервалами, ведь когда их будет 1000+ будет плохо.
xelaok
Можно очередь на промисах реализовать, возможно это подойдёт - https://www.npmjs.com/package/promise-queue
Suicide Liza
https://ericelliottjs.com/product/lifetime-access-pass/ кто нибудь просматривал ?
Алексей
Sergey
я тут упоролся
Sergey
Дима
А как реализован алиас models?
Дима
Аа, найс 👍 а с vs code как работает? Автодополнение/автоимпорт есть?
Sergey
да
Sergey
правда пришлось поставить ему явно
Sergey
jsconfig.json
Sergey
{
"compilerOptions": {
"paths": {
"*": ["src/*"]
},
"baseUrl": "."
}
}
Sergey
но не совсем так, как привычно
Sergey
хотя может это у меня такие плагины
Дима
Попробую сейчас в монорепу воткнуть)
Sergey
Sergey
но насколько хорошо он осилит монорепо непонятно
Andrew Kiselev
кто какой нейминг предпочитает для пользователей? user || person?
Alex