@nodejs_ru

Страница 2680 из 2748
Alexander
13.10.2018
16:45:03
Ҫѐҏӗѫӑ
13.10.2018
16:45:04
чойто за строгое преобразование такое? > '2.0' => NaN ?

Oleg
13.10.2018
16:45:04
> Number.parseInt('70a') 70

Дмитрий
13.10.2018
16:45:24
не вернёт NaN на нецелое число
Потом делаешь toString и сравниваешь с тем что было

Google
Дмитрий
13.10.2018
16:46:01
вариант
Не правильно сработает только если число очень большое и точность теряется

Alexander
13.10.2018
16:46:09
ну почти http://numeraljs.com/

Vitaly
13.10.2018
16:46:13
чем регулярки не вариант? ? там же просто проверить есть ли цифры и -

а потом конвертировать

Alexander
13.10.2018
16:46:35
ахахаххаах https://github.com/numbers/numbers.js

Дмитрий
13.10.2018
16:46:46
чем регулярки не вариант? ? там же просто проверить есть ли цифры и -
Надо конечно проверять, но скорее всего регулярки медленее

Vitaly
13.10.2018
16:47:02
надо сравнивать с toString, но скорее всего да

Vitaly
13.10.2018
16:47:37
Number(str)
Number('2.0') = 2

arts
13.10.2018
16:47:52
Потом делаешь toString и сравниваешь с тем что было
Для больших чисел работать не будет

Google
Vitaly
13.10.2018
16:47:57
и это не целое, а любое х)

Tema
13.10.2018
16:47:59
Там приложение висит, ктрл-с нажал чтобы выйти
Чтобы выйти из докер контейнера нужно использовать не ctrl+c, а ctrl+q + ctrl+p друг за другом. При ctrl+c пересылается терминация процесса в приложения.

arts
13.10.2018
16:48:07
Number('2.0') = 2
Ну, всё правильно

Vitaly
13.10.2018
16:48:17
молодой человек, почитайте ТЗ

Дмитрий
13.10.2018
16:48:32
Для больших чисел работать не будет
Знаю я. Но там вообще не ясно как быть. Разве что bigint юзать

Oleg
13.10.2018
16:50:33
Впрочем, пофиг. С регами действительно коротко и ясно чем это замшелое шамагство '-3.425'.match(/^-?[0-9]+$/)

Vitaly
13.10.2018
16:51:56
Впрочем, пофиг. С регами действительно коротко и ясно чем это замшелое шамагство '-3.425'.match(/^-?[0-9]+$/)
может быстрее будет regex.test(str) && Number(str)? ну это по логике, а как там реально это по скорости работает, не проверял)

Tema
13.10.2018
16:52:05
Спасибо, но это проблемы не решает)
Так а в чём проблема если на скринах всё норм? Aborting это Ctrl+C

Грін
13.10.2018
16:53:30
Так а в чём проблема если на скринах всё норм? Aborting это Ctrl+C
Там монго не правильно подключается и я непойму почему, могу сбросить Dockerfile и docker-compose

Pavel
13.10.2018
17:51:44
всем привки) помогите сформировать щапрос вгугл плз) дело в том что я в бэке не оч шарю, но для своего проекта мне надо заплить кое что Я юзаю postgres и не могу понять как мне организовать хранение данных У меня есть юзеры и есть слова, юзер может знать определенное кол-во слов, их так же моджет знать и другой юзер Как хранить такие данные?

можно например у юзера хранить список айдишником слов?[

или у слова айдишинки юзеров которые знают его

так вообще можно в sql ?

и да, простите за дико нубский вопрос

Alexander
13.10.2018
17:53:10
Это называется связи коллекции

Pavel
13.10.2018
17:53:23
о, спасибо)

Alexander
13.10.2018
17:54:03
Вроде как так было, хотя там другой термин вроде

Суть в том, что он позволяет в sql ебашить массивы у данных которые ты запрашиваешь



Google
Aga
13.10.2018
17:57:22
у тебя пиксель чтоли?

Alexander
13.10.2018
17:57:56
у тебя пиксель чтоли?
Ну это оффтоп, а так нет

Sars
13.10.2018
18:17:58
Так ты спроси в канале dba русскоговорящего сообщество. Там правда админ не адекват))

Konstantin
13.10.2018
18:22:38
Всем привет. Только начинаю осваивать node, и js в частности. Вопрос такой: а vs code хорошо рфботфет intellisense? А то я вижу,что он например не видит методов и свойств у пакета телеграм бота, дф и у пакета mongoose тоже бывает не выводит подстановку... После visual studio и шарпа это очень неудобно....

Rattlesnake
13.10.2018
18:24:23
Привет всем! А кто подскажет, как бороться с утечками памяти?) Есть такая ситуация - скрипт на проде падает с нехваткой памяти в хипе. Но локально на локальной машине отрабатывает нормально. Суть работы скрипта - берет сообщения с кафки и перекладывает аэроспайк, выполняя бизнес логику. Локально подключаясь к кафке прода удаленно и к локальному аэроспаку - все работает нормально, память не утекает и полностью разбирает очередь. На проде память постепенно заканчивается и минут через 15 падает с ошибкой - не могу аллоцировать в хипе. Вопрос - в чем причина? Куда вообще можно копать? Разница между локальной копией и продом в том, что на проде кафка находится близко и скорее всего поток сообщений больше (5000 rps vs 3000). P.S. приложение крутится в контейнере докера как локально, так и на проде, то есть можно предполагать, что окружение не влияет

Maxim
13.10.2018
18:42:56
Привет! Подскажите кто-то пожалуйста хороший бойлерплейт под експресс (опционально - монгу). Без бабеля. Если и не заюзаю, то хоть посмотрю либки/струтуру

Желательно с авторизацией, чеком пейлоадов, еррор хендлингом

Gleb
13.10.2018
18:44:51
Привет всем! А кто подскажет, как бороться с утечками памяти?) Есть такая ситуация - скрипт на проде падает с нехваткой памяти в хипе. Но локально на локальной машине отрабатывает нормально. Суть работы скрипта - берет сообщения с кафки и перекладывает аэроспайк, выполняя бизнес логику. Локально подключаясь к кафке прода удаленно и к локальному аэроспаку - все работает нормально, память не утекает и полностью разбирает очередь. На проде память постепенно заканчивается и минут через 15 падает с ошибкой - не могу аллоцировать в хипе. Вопрос - в чем причина? Куда вообще можно копать? Разница между локальной копией и продом в том, что на проде кафка находится близко и скорее всего поток сообщений больше (5000 rps vs 3000). P.S. приложение крутится в контейнере докера как локально, так и на проде, то есть можно предполагать, что окружение не влияет
Запусти с --inspect, подключись через chome dev tools и сделай 2 дампа памяти - в начале работы и перед падением по памяти. Потом сравни их и в диффе увидешь какие объекты наплодились, но не были собранны GC.

Rattlesnake
13.10.2018
18:45:19
Я так делаю, локально в дампах памяти нет ничего интересно то возрасте память то упадет

Удаленно пробросил порт по ssh и я просто тупо не успеваю сдампить)

Gleb
13.10.2018
18:45:45
И мб у тебя не память течёт, а просто сообщений слишком много?

Rattlesnake
13.10.2018
18:45:46
Он падает раньше, чем дамп скачивается с сервера

ну вот у меня тоже эта идея, что очень много сообщений и просто на них на все не хвататет памяти обработать в штатном режиме

Google
Gleb
13.10.2018
18:46:27
Ммм... Ну тогда померяй память внутри ноды и когда перевалил за 1 Гб - отсоединяйся от кафки)

Rattlesnake
13.10.2018
18:46:36
))

Ну там есть метод pause

Rattlesnake
13.10.2018
18:46:59
я его использую, чтобы притормозить очередь - не перегрузить аэроспайк)

просто вопрос в том - локально же все нормально работает...

Gleb
13.10.2018
18:47:46
Тогда твой путь --max_old_space_size=8000 (и более), если память сервера позволяет, и смотри на профиль загрузки. Но имеей ввиду, что может начать тормозить GC. Либо можешь попробовать включить --expose_gc и внутри js руками дёргать global.gc() принудительно, тоже может помочь.

Rattlesnake
13.10.2018
18:48:47
ок, спасибо

Ҫѐҏӗѫӑ
13.10.2018
18:58:26
собрал тут список того, что появится в 11 версии t.me/juliarderity/166

Cenator
13.10.2018
19:05:52
Vitaliy не оффтопь

Lattrache
13.10.2018
19:06:32
пиздец какой-то, админ вот с js не может получить свои деньги)

Maxim
13.10.2018
19:09:50
Хм, кто-то в этом чате слышал про АОП? (аспектно-ориентированое программирование)? может кто-то пытался реализовать его в ноде?

Sars
13.10.2018
19:10:03
Как вы считаете нужно ли использовать knex или sequilize. Имеется ли у них хорошая надежность. Точно ли все данные обрабатывают как нужно.

никогда не слушайте
13.10.2018
19:10:24
Буду рад, если у кого-то есть годный мануал, по интеграции MongoDB + mongodb (node) + express. Все что в гугле не нахожу, либо старое, либо примеры сложности insertOne без масштабируемости.

Gleb
13.10.2018
19:14:33
собрал тут список того, что появится в 11 версии t.me/juliarderity/166
Как думаешь, в 12-ой будут class private fields не за флагом? И заодно спасибо за канал)

Ҫѐҏӗѫӑ
13.10.2018
19:15:33
думаю да

Gleb
13.10.2018
19:16:14
Как вы считаете нужно ли использовать knex или sequilize. Имеется ли у них хорошая надежность. Точно ли все данные обрабатывают как нужно.
Что ты понимаешь под "надёжностью"?) Инструменты достаточно популярные, что бы большинство багов были выловленны сообществом) Knex так вообще query builder.

Gleb
13.10.2018
19:20:35
никогда не слушайте
13.10.2018
19:22:28
Лучше смотри в сторону mongoose. У него конечно много багов и особенностей, но это всё таки ODM, а не голый драйвер.
А есть что нибудь такое, где поменьше "багов и особенностей"... Может вообще другую БД? Мне в принципе не принципиально. Лишь бы с express нормально интегрировалось.

Google
Gleb
13.10.2018
19:23:16
Странно, добавил памяти - и все стало ок. То есть процесс ноды примерно есть 2 процента памяти и это значение не меняется уже минут 10
У тебя есть какой-нибудь нормальный мониторинг памяти? Prometheus там например или ещё что. Чем ты размер памяти занятой меряешь?)

Rattlesnake
13.10.2018
19:24:10
top)

мониторинга пока нет, но наверное пришло время прикрутить

Есть одна идея - сервер то под нагрузкой. ТО есть пока он отдыхает, нода разгружает очередь все норм. Как то лько другие процессы начинаю отжирать процессорное время - сразу из кафки наваливает сообщений и забивает память. Как рах это и объясняет, почему локально все работает.

Gleb
13.10.2018
19:28:12
А есть что нибудь такое, где поменьше "багов и особенностей"... Может вообще другую БД? Мне в принципе не принципиально. Лишь бы с express нормально интегрировалось.
Нет, это ж javascript ? Ну а на самом деле у mongoose всё норм, пока не погружаешься в дебри. Например, мы пару раз себе ноги отстрелили дескриминаторами, причём нехило так. Но тут уж ничего не поделаешь, opensource) Что ты имеешь ввиду под интеграцией с express я тоже не пойму, это никак не связаные вещи и никакой интеграции между моделями и слоем роутинга не предполагается в nodejs)

Sars
13.10.2018
19:29:45
Сейчас я использую модуль mysql, все запросы пишу через sql. Думаю есть смысл перейти на knex или sequikize.

Gleb
13.10.2018
19:31:34
А что значит query builder?
Объектный интерфейс составления запросов: knex('users').where('id', 1) превратится в: select * from `users` where `id` = 1

+ у него встроенные миграции есть

Sars
13.10.2018
19:33:04
А профи вообще на чем пишут. Профи всмысле те кто часто работает с бд.

Gleb
13.10.2018
19:34:11
Можешь дня начала на паре кейсов попробовать knex, разницы кроме симантической почти нет, переписать с plaintext будет просто. А вот sequlize уже ORM со схемой и моделями. Тут посмотри-подумай, осилишь или нет, там всё таки сложнее.

А профи вообще на чем пишут. Профи всмысле те кто часто работает с бд.
Знаешь 2 главных критерия, от которых надо плясать при выборе инструмента?

Sars
13.10.2018
19:35:36
Нет и какие?

Страница 2680 из 2748