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 - под него надо еще и фундамент построить. Поправьте, если ошибаюсь, но в ноде, кажется ничего такого нет ни стандартного, ни стандарта де-факто.
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
Evgeny
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
Anonymous
и чо?
К примеру - https://github.com/airbnb/javascript#references
Dmitriy
Dmitriy
Anonymous
Dmitriy
Ну линтер в вебшторм встроенный ругается на var если выбран es6
Dmitriy
Sergey
rc1
Sergey
я имею ввиду, что не вышел
Andrew
а в том то и соль что по большому счету похер что ты используешь, если понимаешь как это работает.
Если ты понимаешь как работает var, пользуйся им, если знаешь как работает let - юзай его, но он тебе не всегда подойдет.
Так что ты можешь использовать в коде 3 типа объявлений и они не будут пересекаться по назначениею.
Энлов Свичблейд
Andrew
мне eslint запрещает использовать var, потому что используем конфиг airbnb.
Но я не вижу ни одного минуса в использовании var.