Josh
27.09.2018
10:45:22
у меня вот вопрос появился, пока поиском не пройдусь по чату - не задам
Leviathan
27.09.2018
10:51:45
подкиньте пакет/сервис для генерации графиков в png на серверсайде в node
Mishell
27.09.2018
10:55:39
Вопрос по best practices.
Есть функция getStuff(symbol, params = {})
Первый параметр обязателен. Второй параметр - это объект. Я не знаю как много параметров буду передавать. Может это будет два ключа-значения, а может там будет 20 ключей-значений. Но в конечном счёте функция должна сформировать объект запроса, в котором не будет undefined, а только реально-переданные параметры.
Как внутри функции я должен обрабатывать параметры? Есть идея конечно создавать проверку на каждый ключ params типа if (params.key == undefined) do_some_crap? Подскажите как быстро пробежаться по params, что бы сформировать нормальный объект отсеяв ключи undefined, которые не передавались в объекте?
Yura
27.09.2018
11:00:00
const obj = {
a: 1,
b: undefined
};
const newobj = Object.keys(obj)
.reduce((acc, key) => Object.assign({}, acc, obj[key] ? { [key]: obj[key] } : {}), {});
console.log(newobj);
Google
Stepan
27.09.2018
11:01:02
Mishell
27.09.2018
11:01:29
Yura
27.09.2018
11:01:44
> Ты бы тогда Object.entries юзнул
Тоже вариант, это уже на усмотрение того, кто это юзать будет)
Leviathan
27.09.2018
11:06:02
костыльная задача - костыльное решение
Vitaly
27.09.2018
11:08:17
внутри проходить по объектам рекурсивно нужно?
Mishell
27.09.2018
11:09:24
одномерный объект?
Да, обычный объект, для формирования querystring в запросе. Просто количество параметров которое будет передано - не определено. Вот и пытаюсь сделать универсально, без кучи блоков проверки.
Vitaly
27.09.2018
11:10:04
null оставляем?
Mishell
27.09.2018
11:10:38
Ну и забочусь что бы не было передано undefined. В принципе тот вариант который выше предложили вполне хорошо справляется с задачей, его и модифицировать немного под себя можно.
По ключам пробегать буду в общем.
Vitaly
27.09.2018
11:14:24
если нельзя мутировать, то можно еще такой, более простой вариант
https://pastebin.com/UJAhrd5a
Josh
27.09.2018
11:20:42
нефиг объекты передавать в параметры
Google
Vitaly
27.09.2018
11:21:41
Это уже другой вопрос)
Yura
27.09.2018
11:22:23
Ещё вариант с object.entries. вдруг что..
https://jsbin.com/fopeginawo/edit?js,console
Vitaly
27.09.2018
11:23:34
а зачем на каждый проход создавать новый объект?
Mr.Smile
27.09.2018
11:23:34
Кто знает. Нужно в mongodb нормализацию делать и разбивать данные по коллекциям, а потом делать коллекцию со ссылками на записи из других коллекций, ну как в sql. Или пихать все поля в один документ Одной коллекции? В инете по разному пишут. Как быстрее работает и правильнее?
Josh
27.09.2018
11:25:49
быстрее не разбивать, логично же ну, а правильно ли - определяет задача и вообще выбор носкула
Mr.Smile
27.09.2018
11:26:48
Yura
27.09.2018
11:27:24
> а зачем на каждый проход создавать новый объект?
Ну тогда так https://jsbin.com/vamarazipe/edit?js,console
Та похер, на самом деле. Если объект небольшой - то разница будет несущественная.
Josh
27.09.2018
11:28:46
от задачи зависит полностью, может подзапросы тяжелые будут
раз вопрос такой стоит - значит нет требования к нормализации, а значит пихай все в один док и по мере надобности раскидывай, вот и все
Mr.Smile
27.09.2018
11:33:49
от задачи зависит полностью, может подзапросы тяжелые будут
Ну задача - это ис, которая хранит данные о фотографиях с камер. Камеры одна коллекция. Адреса на которых они стоят - другая коллекция. Номера машинтретья коллекция. Коллекцию с перемещениями камер сделал. Ну и соответственно колекцию где собраны в документ каждый факт фиксации : айди из коллекций о камере, айди о номере авто, о адресе и дата. Количество фиксаций в год где то 100млн. Так вот оставить так или денормализовать и не морочиться?
По идее лучше когда достаточность соблюдена, но слышал что монга джоины не любит. А с другой стороны когда всё в куче это не каша ли получится?
Josh
27.09.2018
11:37:58
тут нет вложенных джойнов, монга справится одинаково, но памяти будет меньше с нормализацией хавать
Mr.Smile
27.09.2018
11:38:34
Brs
27.09.2018
11:39:43
Посоны, а что за драма случилась с uws, где теперь биндинги к uWebSockets брать?
Mr.Smile
27.09.2018
11:40:29
Josh
27.09.2018
11:40:59
А по скорости выборки как?
одинаково, если оба случая проиндексированы, но добавление в кашу медленней из-за переиндексации, как и во всех субд, соответственно лучше разбить
Mr.Smile
27.09.2018
11:41:29
Google
Josh
27.09.2018
11:43:12
а фотки в бд?
Mr.Smile
27.09.2018
11:43:37
В мускле были в бд ?
Тут хочу оставить только ссылки в фс.
Kozimjon
27.09.2018
11:43:58
народ, никто не знает чата по созданию телеграм ботов? прошу тапками не кидаться, т.к. даже не знаю что в поиск вбить
Mr.Smile
27.09.2018
11:44:08
Потому что это мука делать бекапы те же
Josh
27.09.2018
11:46:50
Mr.Smile
27.09.2018
11:47:07
Там был мускл и пхп. А щас изучать ноду начал и решил попробовать нода плюс монго. В интрнетахтговорят бычтрее поиск будет
Harry
27.09.2018
11:47:50
Kozimjon
27.09.2018
11:48:22
Ulook
27.09.2018
11:51:00
Всем привет! Скиньте плз где работу можно запостить по node.js, буду признателен. Зы - кто ищет подработку - велком в ЛС. Спасибо
Harry
27.09.2018
11:52:22
Ulook
27.09.2018
11:52:42
Спасибо
Артем
27.09.2018
11:54:56
Leviathan
27.09.2018
12:08:56
@ejnshtein пюпитр и фантом не хочу тянуть, можно как-нть просто сгенерировать пнг график на серверсайде?
Alexander
27.09.2018
12:10:09
и вообще есть гугол, это во первых
Leviathan
27.09.2018
12:12:23
там нет
Роман
27.09.2018
12:12:57
Leviathan
27.09.2018
12:14:51
Роман
27.09.2018
12:16:16
не графику, а график
Я тебя понял. А графики, которые потом в PNG экспортируются по твоему не на canvas делаются?
Google
Роман
27.09.2018
12:16:41
Canvas/SVG.
Leviathan
27.09.2018
12:17:23
я хочу повыше интерфейс, а не спускаться ближе к асму
Oleg
27.09.2018
12:17:45
Лол
Leviathan
27.09.2018
12:17:53
готовый конкретный пакет, чтобы на вход данные, на выходе файло в потоке
Роман
27.09.2018
12:18:02
Причём тут Asm? Графики на канвасе делаются в браузерах.
Oleg
27.09.2018
12:18:09
Ну напиши сам
5 строчек коа
кода
Leviathan
27.09.2018
12:18:25
мне не нужен браузер
Роман
27.09.2018
12:18:29
Я не знаю запустятся ли браузерные фрэймворки для графиков на серверном канвасе, но по идее могут.
Leviathan
27.09.2018
12:18:57
не надо тупых советов плз, гуглить - гуглил
Роман
27.09.2018
12:18:58
Leviathan
27.09.2018
12:19:20
капец ты тугой.
Роман
27.09.2018
12:21:18
капец ты тугой.
Ты просишь график, который можно в итоге перевести в PNG, это делается на canvas. Я тебе скидываю пример "сгенерировать пнг график на серверсайде", а ты переходишь на личности. Ну что же, удачи в решении проблемы.
Причём тут асм, причём тут браузер? Тебе сначала стоит разобраться чего ты хочешь.
Leviathan
27.09.2018
12:22:15
извини, грубо ответил. Не асм, а ближе к асму
Alexander
27.09.2018
12:22:40
Leviathan
27.09.2018
12:24:03
не было примера, а рисовать примитивы с помощью канваса я не хочу
Google
Роман
27.09.2018
12:31:37
Leviathan
27.09.2018
12:33:14
не надо ля-ля
везде "какнарисоватьдугу"
а мне сова нужна
не знаю какой у тебя там пузырь гугла, но запрос должен быть более конкретный, чтобы выйти на те ссылки
Роман
27.09.2018
12:36:29
Trilium
27.09.2018
12:36:32
chartjs для ноды https://github.com/vmpowerio/chartjs-node
Leviathan
27.09.2018
12:37:05
есть что-нибудь, что не тянет jsdom и прочие недобраузеры?
не верю, что сообщество еще не родило генерацию пнг без термоядерного синтеза дома (не говоря уже о пушках и воробьях)
Роман
27.09.2018
12:41:02
Как я понял ситуацию:
1. Не нужен браузер
2. Не нужен DOM
3. Не нужен канвас
Вероятно тебе поможет магия. Дождёмся, может найдутся компетентные маги и помогут решить твою нелёгкую задачу.
Leviathan
27.09.2018
12:41:29
ну значит ты слаб
Trilium
27.09.2018
12:41:41
родило, но не для ноды https://www.linuxlinks.com/plottingtools/
для ноды это клиентский js засунутый в окружение ноды. вроде никто не пилил чарты прям для ноды.
Alexander
27.09.2018
12:41:50
@Atassis тут личности оскорбляют
Leviathan
27.09.2018
12:42:01
не личности, не надо тут
Alexander
27.09.2018
12:42:09
ну значит ты слаб
Leviathan
27.09.2018
12:42:23
и что? он не понимает как реализовать задачу
Таймураз
27.09.2018
12:42:23
Alexander
27.09.2018
12:42:23
капец ты тугой.