A
Ну в целом да. Вопрос только в том, какой тулзой всё это сделать. Всё же процессом надо немного управлять - как минимум подсунуть нужный шаблон и скормить необходимых данных, поэтому вызывать руками какие-то сторонние тулзы можно, но скорее всего чуть более накладно. Вот, собственно, вопрос и был про то, а нет ли чего-то готового, в духе: npm install my-awesome-pdf-builder-just-for-alex ну и я такой туда объект с пропертями отправил, а он мне путь на pdf выдал)
Таймураз
Генеришь html-ку чем-нибудь, эту html-ку передаешь в pdf конвертер
Таймураз
Если есть файлы, вроде как можно их в base64 конвертнуть
Таймураз
Тут нужно апи изучать
Dmitry
привет всем. Подскажите, это нормальная практика писать так if (cond) { return new Promise(resolve => resolve(data)); } else { return AsyncData().then(data => data); }
Evgeny
Ну ты же пытаешься сделать апи универсальным, верно? Тогда нормально. Но лучше изучи блюберд
Dmitry
спс, а в чем его преимущества?
Таймураз
спс, а в чем его преимущества?
Скорость плюс апи обширнее, чем в спеке
Anonymous
Причём скорость не какие-то мс, а в 5 раз по сравнению с NodeJS 7.7.1
Dmitry
о, то что нужно)
Alexey
Всем привет, не подскажите почему в value в cookie к примеру запятая в таком ввиде: "%2C" ? Как в обычный вид запихивать такие символы?
Alexander
Всем привет, не подскажите почему в value в cookie к примеру запятая в таком ввиде: "%2C" ? Как в обычный вид запихивать такие символы?
Просто записано в урлкодированном виде. При получении данных дибо они сами анкодируются, либо ты это сделай
Dmitry
Посмотри методы decodeURI и encodeURI. Преобразуется чтобы отличать текст от разметки URL адреса
Alexey
Просто смотрю в https://bitly.com/ в режиме гость ссылки хранятся в anon_shortlinks куке
Alexey
Там такой ерунды нету
Dmitry
Ну так самой куке без разницы что в ней. Видимо положили в человеко-понятной форме для удобства отладки
Alexey
Да просто я новичок в этом и сразу пугаюсь что делаю что-то не так либо можно проще
Dmitry
ХЗ, если нормально относишься к критике, то не парься насчет "не так", главное чтоб работало, переделать "как хотят" всегда успеешь
Завтра
Ребят, такой вопросик { 'a.b.c': 'ccc', 'a.b.d': 'ddd', 'a.c': 'fff' } Нужно из такого объекта построить дерево (путь, собственно, содержится в ключах) Убил уже полчаса, но не получается Может, есть у кого готовый вариант? В гугле не нашел подобного
Завтра
Отбой, решил вопрос
Anonymous
Отбой, решил вопрос
В лодаше есть метод.
Dmitrii
если я хочу чтобы JS в последней ноде по дефолту был с use strict, надо мне использовать флаг --use-strict или он и так strict?
Danil
Как делать апи на экспрессе модульно? Если есть ссылки на экзамплы или какие ни будь лучшие практики
Завтра
https://www.npmjs.com/package/flat unflatten()
Ух, прислал бы раньше - сэкономил мне часа полтора но все равно спасибо)
Завтра
Надо качать навыки гугления очевидно
Ну загуглить flatten я не додумался, сорри
Anonymous
Ну загуглить flatten я не додумался, сорри
Ты хотя бы свой не писал 😄
Anonymous
https://github.com/zerobias/unbend
Завтра
Я писал полгода назад на php Но в js другой совершенно алгоритм, из-за прикола с присваиванием
Yan
братишки, есть вопрос по монге и монгузу
Yan
как мне сделать в коллекции для каждого нового документа автоинкрементное поле уникальное?
Yan
типа как _id
Yan
для понятности
Yan
я сохраняю туда док, если там доков нету, то он получает также поле с числом 1
Yan
и каждый новый сохраненный док получает это поле с инкрементов в единицу
Yan
2, 3 и тд
Yan
вроде в sql это на уровне базы есть, а в монге пока не нашел
Yan
то есть там изначально каждый элемент имеет индекс, а в монге это _id, но я также хочу каждому элементу давать индекс
Yan
при этом не через костыль вроде получения длинны всей коллекции, а потом присваивания каждому новому элементу, а чтобы на уровне базы это происходило
Mikhail
насколько знаю в монге нет автоинкрементов
Mikhail
можно завести поле с числом и инкрементить его запросом, тем самым получая актуальный индекс для нового вставляемого документа
Yan
мне тут братишки подсказали, что, оказывается, _id можно сортировать, и это будет сродни сортировки по creationDate
Yan
sorting on an _id field that stores ObjectId values is roughly equivalent to sorting by creation time.
Anatoliy Skuratov
В ObjectId содержится время создания документа https://steveridout.github.io/mongo-object-time/
AlexMist
Подскажите по sequelize пожалуйста, а то не догоняю. Нужно инстанс db в роуты пробрасывать или нет ? Nипа в app.js ипортировали все модели , и в роутреы отдавать route(app, db); У них в примере, в каждом роуте импортируются все модели.
Alexander
если у тебя роуты модулями, то надо в модуле импортить модели
Alexander
Подскажите по sequelize пожалуйста, а то не догоняю. Нужно инстанс db в роуты пробрасывать или нет ? Nипа в app.js ипортировали все модели , и в роутреы отдавать route(app, db); У них в примере, в каждом роуте импортируются все модели.
Или, чуть более зашкваренный метод, но тоже сработает. В express есть .app свойство. В нем делаешь ссылку на сиквелайз, а сиквелайзом в инит файле импортишь все модели. Потом просто request.app.sequelize.model('model').
AlexMist
Ды вот , как то так и думал. Реально же получается, что они на каждый роутер создаются ?
AlexMist
В их примере
AlexMist
https://github.com/sequelize/express-example
Alexander
Они создаются один раз, а в каждый роут идут по ссылке
AlexMist
https://github.com/sequelize/express-example/blob/master/routes/users.js
AlexMist
var models = require('../models'); в каждом роуте
Alexander
var models = require('../models'); в каждом роуте
я не знаю как там под капотом устроено, но почему-то почти уверен, что оно кешируется или что-то такое, если ты об этом
Алексей
Ды вот , как то так и думал. Реально же получается, что они на каждый роутер создаются ?
Первый вызов require инициализирует модуль, то есть выполняет его код и возвращает module.exports из модуля, а все последующие только возвращают уже готовый module.exports из модуля без повторного выполнения кода модуля. Так что модели там не на каждый роутер заново создаются.
AlexMist
Спасибо большое! Так и подумал сначала, но что то сомнения закрались 😐 За это получается сам движок отвечает ?
AlexMist
Прсто про это нормально, мало где написано. Хотя если бездумно кодить )))
Алексей
Спасибо большое! Так и подумал сначала, но что то сомнения закрались 😐 За это получается сам движок отвечает ?
Да. Кстати в случае сомнений можно на практике проверить, вставив в код каждого модуля console.log(имя_модуля)
AlexMist
В сам модуль, и по идее если его 100 раз импортировать то он 1 раз исполнится ?
Алексей
можно кстати ещё влезть во фронтенд (например скачать какой-нибдуь проект) и посмотреть какой код webpack для модулей генерирует
Алексей
модуль - это просто кусок кода
Алексей
который может установить объект module.exports
Алексей
а может не устанавливать и просто выполнить некий код
Алексей
А вообще я удивлён, что для ноды почти не практикуется такая штука как dependency injection. На ES6 это довольно просто делается и это позволило бы избавиться от такой проблемы: require('../../../../../my-module')
GG
Подскажите пжлст, в чем может быть проблема: Копирую 3000 файлов из одной диры в другую, перед этим сравниваю их имена с записями в бд и переименовываю. Все очень медленно делается пять файла в минуту. Почему?
GG
Сделал то же самое со 100 файлами, все это сделалось за меньше минуты
Alexander
кстати да а что вы делаете на ноде с проблемой require('../../../../../my-module')? в вебпаке там алиасы есть
Alexander
Sergey код пожаласта
GG
150 строк, сейчас на гист закину
Alexander
ок