A
Нууу смотри. Я бы в этом случае плясал от ORM-а или того, как ты собираешься с базой вообще работать
A
Потому что их нет в ноде вообще
A
Ладно, вообще есть конечно. Но чего-то уровня Hibernate или SQLAlchemy нету
Evgeny
Потому что их нет в ноде вообще
Бомбит от этого нереально
Evgeny
Килотонны человеко-часов переводятся на создание и поддержание кастомных поделок-решений
A
Ну... сформулирую тогда проще. Мне вот хочется запилить POJO, развесить аннотации, и чтобы весь этот lazy fetch и заодно проблему N+1 из коробки решало. Ну и ясно, что как самый яркий самородок из Сибири, базу я в конце обязательно поменяю с бесплатного оракла на древний ms sql )
A
Но если есть ссылки - я с радостью гляну
A
Не, я ж не спорю, что написать можно. Я про готовое спрашиваю)
A
Бомбит от этого нереально
ну скажем так, на ноде, имхо, конечно, значительно реже и потребность такая возникает. Хотя, конечно, возникает эпизодически. Если хочется прям хороший конструктор, то не смотря на все эти ноды и прочее популярное.. ну слушай, Java - твой выбор. Вот та самая со спрингом и гибернейтом. Как бы не хотелось, чтобы было наоборот, пока это самый прямой и фиче-рич выбор
A
Туповато, да. Но хм.. Netty сейчас если не рвёт вообще всех, то стабильно в топе. Кодится оно просто, прямо и тупо.
A
Меня ведь не выпилят за это из чатика??))
Evgeny
Не, норм
A
Там еще про neo4j говорили)))
A
Если никто не пишет, то возникает резонный вопрос - а почему?) Наверняка есть некая причина..
A
Вполне возможно просто потому, что в мире нужен ровно один Hibernate)
A
Ну вот смотри, odbc - не самая популярная штука
A
https://www.npmjs.com/package/odbc
A
А как без odbc/jdbc/чего-то такого жить вообще ?
A
Плюс очень хитрый вопрос с асинхронностью. Если я ничего не путаю (а я могу), то большинство баз очень плохо любят асинхронную работу. А без connection pool-а никак. А потоков-то в JS нет. И вот мы уже пишем native library для ноды)
Dmitry
Соглашусь с предыдущим оратором, базе собственно всё равно 10 запросов выполнять или 500, на серваке просто лягут диски, все упрется в io
Vladimir
Никто в протоколе монги не разибрается?
Vladimir
А то документация какая-то вялая
A
А при том, что connection pool нужен не для pg, а вообще для всех типов БД. И если, условно, в Java это все есть в рамках JDBC со товарищи, то в ноде еще это все предстоит реализовать руками. И тогда, когда последний раз (правда это было давно) я работал с базой напрямую руками - с асинхронным io всё было очень не сладко. Примерно вот так: http://stackoverflow.com/a/7616094/1040070 Насколько знаю, сейчас это куда-то подвинулось, но вообще говоря суть не в этом. Суть в том, что перед тем как строить абстрактный ORM - под него надо еще и фундамент построить. Поправьте, если ошибаюсь, но в ноде, кажется ничего такого нет ни стандартного, ни стандарта де-факто.
A
Никто в протоколе монги не разибрается?
Могу посоветовать только поковырять драйвер
Vladimir
Ну это очевидно
Vladimir
Но это не дает прямых ответов
Vladimir
Приходиться ковырять вообще все драйвера на всех языках, чтобы сделать выводы
Evgeny
В ноде очень очевидный драйвер, btw
Vladimir
Да не очень
Vladimir
Там за слоем сахара и проверки типов плохо читается суть
Evgeny
Я в 2.1 ковырялся - все было просто и понятно, афаик
Vladimir
Плюс разбито на два пакета
Vladimir
С дублированием сущностей
Evgeny
Я, правда, не пытался его понять в целом, просто дебажил конкретную проблему
Vladimir
Я решил свой драйвер замутить
A
Не уверен, но может вот это поможет: https://github.com/ReactiveMongo/ReactiveMongo/tree/master/driver/src/main/scala/api/commands
Vladimir
Да явно придется все драйвера посмотреть
Vladimir
Но мне нужен минимум функционала
Artem
Йоу, никто не работал с пушами от ЯД? Суть в том, что сервер пушит ид операции таким 1080960751286090000 Нормальное число должно быть 1080960751286090017 Это связано с ограничениями ЖСа, как побороть, не знаете?
Artem
Яд отдает числом, а не строкой 😒
Vladimir
В чем отдает? Json?
Artem
Ага
Vladimir
Тогда увы
Vladimir
Придется брать парсер на js и его модифицировать
A
reviver свой ставить пробовал?
Vladimir
Там уже поздно
Vladimir
В принципе можно поробовать регэкспом накрыть
A
А, оно туда не сырые данные пихает?
Vladimir
Но это не особо надежно
Vladimir
Реэкспом найти "my_field": \d+
A
Или как вариант - регулярочкой заменить все 123456 на "123456" и парсить как обычный JSON, но уже со строками вместо чисел.
Dmitriy
Народ - нужна помощь - возможно нубский вопрос
Dmitriy
Перелопачивал легаси es5 на es6 - столкнулся с проблемой что перемнные объявленные до условий в них не видны - кроме возврата к var не вижу выхода. Было так: var variable; if (cond) { variable = new_value; } Сделал let variable; if (cond) { variable = new_value; }
Dmitriy
Плохо ли вернуться к var?
Dmitriy
Для таких случаев?
Andrew
const - если хочешь пометить переменную как константа let - если хочешь ограничить область видимости переменной блоком var - если хочешь просто объявить переменную
Andrew
С чего все вдруг взяли что var - это зло?
Sergey
es6 же вроде
Andrew
и чо?
Andrew
аргументация нормальная есть, кроме того что es6?
Dmitriy
Все, сорян - понял где протупил
Dmitriy
Не в том блоке была
Dmitriy
Спасибо
Anonymous
и чо?
К примеру - https://github.com/airbnb/javascript#references
Dmitriy
Вы уверены что variable не доступна в блоке? Как мне кажется let не доступен из вне, но доступен внутри своих блоках
Да, вы правы - просто в старом коде она была объявлена не в том блоке - а т.к. он пеленой шел - я не заметил
Andrew
К примеру - https://github.com/airbnb/javascript#references
Это стайлгайд который выбрала себе airbnb, аргументации кроме того что они блочные нет.
Dmitriy
Ну линтер в вебшторм встроенный ругается на var если выбран es6
Anonymous
Ну линтер в вебшторм встроенный ругается на var если выбран es6
На самом деле Andrew прав, var и правда можно юзать в es6, просто ваш вопрос касался больше как раз стайлинга.
Anonymous
Ну линтер в вебшторм встроенный ругается на var если выбран es6
Ну и по самой идее let нужно юзать тогда, когда вы не хотите что бы эта переменная была доступна вне блока, а раньше бы вы просто написали бы новый var
Sergey
rc1
Sergey
я имею ввиду, что не вышел
A
С чего все вдруг взяли что var - это зло?
А какие плюсы у var перед let ? Ну кроме hoisting, которые едва ли достоинство?
Andrew
а в том то и соль что по большому счету похер что ты используешь, если понимаешь как это работает. Если ты понимаешь как работает var, пользуйся им, если знаешь как работает let - юзай его, но он тебе не всегда подойдет. Так что ты можешь использовать в коде 3 типа объявлений и они не будут пересекаться по назначениею.
Andrew
мне eslint запрещает использовать var, потому что используем конфиг airbnb. Но я не вижу ни одного минуса в использовании var.