@nodejs_ru

Страница 1829 из 2748
Cenator
03.04.2018
16:15:09
to-do list?
Чтобы плохому не учиться

Сергей
03.04.2018
16:15:41
https://habrahabr.ru/post/352688/

Grigorii
03.04.2018
16:16:08
Кто знает, может человеку больше надо SQLite подобное Хотя, Sequelize же, в таком простом приложении можно будет одной строчкой СУБД менять

Google
Ruslan
03.04.2018
16:18:11
Зачем постгре для такой задачи?

Andruha
03.04.2018
16:18:12
а ты параллельно сохраняешь item-ы?
да, и чую в этом загвоздка, но как сделать последовательно не соображу, только постигаю ноду и жс в целом, но делал вывод в консоль сколько айтемов сохранено, и сколько айтемов запушено - в консоли цифры сходятся

Grigorii
03.04.2018
16:20:57
Зачем постгре для такой задачи?
Вроде сенатор уже ответил выше

Чтобы плохому не учиться

Валера
03.04.2018
16:21:52
Значит, предварительно: Express – конструктор MySql, sequelize – база данных Passport – авторизация.

Vitaliy
03.04.2018
16:22:23
hapi hapi-auth-jwt2.0

Валера
03.04.2018
16:22:29
Странно, почему mоngoose никто не рекомендует, но не моего это ума дело

Vitaliy
03.04.2018
16:22:42
mongoose хорош

Grigorii
03.04.2018
16:23:03
Значит, предварительно: Express – конструктор MySql, sequelize – база данных Passport – авторизация.
Passort - не супервысокоуровневая прослойка на самом деле, просто удобный мидлвар, в которых удобно пихать гору стратегий

Ruslan
03.04.2018
16:23:15
Вроде сенатор уже ответил выше
А с каких пор выбирать базу данных под задачу, а не исходя из каких-то субъективных предпочтений это плохо?

Alexander
03.04.2018
16:23:18
jwt - сила

Валера
03.04.2018
16:23:42
jwt - сила
What's JWT?

Google
Ruslan
03.04.2018
16:23:53
JsonWebToken

Вася
03.04.2018
16:23:59
так а за что его рекоммендовать, ваш монгус?

Ruslan
03.04.2018
16:24:05
Почитай статью на Вики, там всё понятно

Вася
03.04.2018
16:24:22
я бы на самом деле вообще никакую orm не рекоммендовал бы

Ruslan
03.04.2018
16:24:25
В npm есть библиотека для работы с jwt, jsobwebtoken так и называется

Вася
03.04.2018
16:25:00
меня еще всегда фанила валидация модели в монгусе

вот нахуя, кто объяснит?

Vitaliy
03.04.2018
16:25:07
Вася
03.04.2018
16:25:17
ну я могу поспорить за это

Vitaliy
03.04.2018
16:25:18
так она везде есть

Вася
03.04.2018
16:25:26
смотри

ща буду длинное сообщение писать

бля, сумбурно получается, дай мне время

вот смотри, предположим мы создаем проект с нуля. нам нужно реализовать простейший функционал, иметь поддержку аккаунтов, простейший acl и инсерт и чтение одной двух коллекций которые привязаны к домену проекта

так?

Vitaliy
03.04.2018
16:29:47
ага

Вася
03.04.2018
16:30:04
тут даже не онли про монгу, по мне, так единственный плюс орм для релеек - это встроенные механизмы миграций

но го про монгу

в итоге на первом этапе будет правельнее заюзать обычный драйвер монги

Google
Вася
03.04.2018
16:30:52
ну если это, предположим, конечная точка нашего приложения. ну нахуй нам тянуть монгус

Vitaliy
03.04.2018
16:30:54
mongoose не орм

Вася
03.04.2018
16:31:01
ну как не орм

Vitaliy
03.04.2018
16:31:01
а одм

если я не ошиб

Вася
03.04.2018
16:31:06
аа =)

ну ок

Grigorii
03.04.2018
16:31:19
я бы на самом деле вообще никакую orm не рекоммендовал бы
* Защита от SQL инъекций из коробки * Абстра(о)гирование от конкретного диалекта для небольших (несложных) проектов. Одна строчка и вот оно уже работает на sqlite * Могут быть встроенные фичи типа дополнительного кеширования, статистики, логирования и много всего * Миграции * Валидаторы * Удобства типа создать моделько, поработать, а потом может сохранить (обновить), а может нет и т.д.

Вася
03.04.2018
16:31:23
ну ты же понимаешь о чем я, зачем цепляешься

Grigorii
03.04.2018
16:31:42
ну ты же понимаешь о чем я, зачем цепляешься
Я вот тоже решил, что речь про реляционные

Вася
03.04.2018
16:31:47
ща отвечу

* Защита от SQL инъекций из коробки * Абстра(о)гирование от конкретного диалекта для небольших (несложных) проектов. Одна строчка и вот оно уже работает на sqlite * Могут быть встроенные фичи типа дополнительного кеширования, статистики, логирования и много всего * Миграции * Валидаторы * Удобства типа создать моделько, поработать, а потом может сохранить (обновить), а может нет и т.д.
* ну мы про монгу, но это вопрос программирования и программиста. ок пускай будет + * orm/odm тебя еще больше привязывают к конкретному решению * это не золотая пуля, и как правило в последствии тебе приходится воевать с этими механизмами кэширования, которые тебе еще неделю назад помогали * это да, я про это выше написал * при подготовке запроса для базы данные уже должны быть свалидированы. если кто-то валидирует данные с помощью орм/одм - ну бля удачи * модельку нужно привязывать к структурам данных проекта, а не структуры вязать на орм/одм

Вася
03.04.2018
16:37:31
по поводу валидаций на уровне орм/одм у меня вообще бомбит

Grigorii
03.04.2018
16:38:30
* ну мы про монгу, но это вопрос программирования и программиста. ок пускай будет + * orm/odm тебя еще больше привязывают к конкретному решению * это не золотая пуля, и как правило в последствии тебе приходится воевать с этими механизмами кэширования, которые тебе еще неделю назад помогали * это да, я про это выше написал * при подготовке запроса для базы данные уже должны быть свалидированы. если кто-то валидирует данные с помощью орм/одм - ну бля удачи * модельку нужно привязывать к структурам данных проекта, а не структуры вязать на орм/одм
* Когда я писал ответ, я думал, что про ORM * вот про привязку не очень согласен * золотых пуль вообще нет, а всякие потенциально опасные вещи обычно отключать можно легко. * А про валидацию почему так? Вот наоборот не согласен. У меня есть модель. У неё есть конкретные ограничения. Почему бы мне не прописать все эти ограничения там же, где я описываю модель, и там же не прописать разные сообщения, которые выдаются. * Про последнее - чисто про удобство кодирования, ибо именно для этого они и созданы, чтобы было проще и красивее собственно кодитить

Вася
03.04.2018
16:38:56
ну давай для начала про валидацию

Sergey
03.04.2018
16:39:00
>Защита от SQL инъекций из коробки сейчас вроде чуть ли не все имеет такую защиту, если не плейнтекстом пихать. в любом случае когда проектик становиться жирным, без чистого SQL все равно никак.

Stas
03.04.2018
16:39:03
перебираю массив, с каждым элементом делаю const newItem = new Item(obj); Item.save(newItem, function(err, item) { game.items.push(item); game.save(callback); }); в итоге в таблице item получаю N записей (все правильно), а в таблице Game получаю грубо 50*N референсов
по-моему у тебя в айтем падает весь массив, и ты этот массив пушишь в айтемс, получается у тебя на 1 итерации в гэйм массив [1], на второй [1, 1, 2], на третей [ 1, 1, 2, 1, ,2 ,3] и т.д. может тебе нужно пушить item[item.length-1]?

Вася
03.04.2018
16:41:57
только я пока про монгу буду писать, по поводу sql потом

Grigorii
03.04.2018
16:42:04
В большом проекте один фиг, если не испоьлзуется ORM, придётся делать свою прослойку какую-то для работы с БД.

Google
Вася
03.04.2018
16:42:52
ок, ща сохраню в черновик и давай про sql =)

ну смотри, все sql базы имеют встроенную концепцию модели, так?

Andruha
03.04.2018
16:43:29
по-моему у тебя в айтем падает весь массив, и ты этот массив пушишь в айтемс, получается у тебя на 1 итерации в гэйм массив [1], на второй [1, 1, 2], на третей [ 1, 1, 2, 1, ,2 ,3] и т.д. может тебе нужно пушить item[item.length-1]?
точно нет, братан, один айтем падает, вот так точнее: _.each(marketItems, function(obj, index, list) { const newItem = new Item(obj); Item.save(newItem, function(err, item) { game.items.push(item); game.save(callback); }); }

Вася
03.04.2018
16:43:30
ну типо схема

@ShaGrisha

вся эта тенденция джавовскай, мутить абстракции над абстракциями с годами (для меня) начинает выглядеть избыточной

вот блять, кложа

Admin
ERROR: S client not available

Grigorii
03.04.2018
16:45:44
Всё программирование построено на абстракциях, моделях, виртуализации и прослойках

За счёт этого с годами в истории в программировании приложения всё прикольнее, а делаются всё проще

Вася
03.04.2018
16:46:13
я не писал что абстракция - плохо

я говорю что излишество приводи к головной боли

смотри, что легче - иметь два валидатор (один на уровне формирования данных, вторйо на уровне орм), или один хороший на уровне формирования данных?

Max
03.04.2018
16:47:15
я на Koa рендерю стриничку с помощью мидлвари koa-views. На самой страничке у меня подключаются файлы js/css там же у меня путь прописан относительно файла html. Но когда страничка прилетает в браузер все эти файлы запрашиваються с путя localhost:3000/test/sometextв моем случаи . Как это исправляется, что бы файлы брались с папки?

Вася
03.04.2018
16:47:38
ну хотя постой, меня не туда загнало.

Grigorii
03.04.2018
16:47:43
А есть ли излишество? Мне всё равно надо где-то описывать валидацию. Почему бы не описать валидацию модели Стул там, где я описал Стул? Кроме того, я уже писал, один фиг нужна в большом проекте будет прослойка в любом случае (логгирование и всё такое).

Вася
03.04.2018
16:48:57
ну ты мыслишь как настоящий ООП-шник

Grigorii
03.04.2018
16:49:05
Не люблю ООП

Google
Вася
03.04.2018
16:49:11
ты должен валидировать *данные* а не их описание

Morsik
03.04.2018
16:49:36
т.е. валидация на входе а не при сохранении в бд?

Grigorii
03.04.2018
16:49:49
А никто не говорил, что при сохранении

Sequelize позволяет делать валидацию, и это не имеет отношения к сохранению в БД

Вася
03.04.2018
16:50:11
ну ок, вы на своих проектах валидируете данные только при помощи орм?

Grigorii
03.04.2018
16:50:52
На входе пишу Armchair(DataFromUser).validate()

Вася
03.04.2018
16:52:13
ну ок, я вас понял ? я предпочитаю отдавать в функции для работы с базой отвалидированные данные.

вот и вся наука

Grigorii
03.04.2018
16:52:23
Они пройдут через validate, а потом пойдут в функции для работы с БД

Вася
03.04.2018
16:53:11
да я понимаю, я имею ввиду, что пришедшие ко мне данные из вне (не важно, http, stdin), они предварительно будут провалидированы

и вставлены в sql запрос например

Grigorii
03.04.2018
16:53:49
Кто будет гарантировать их валидность?

Давай ситуацию теперь от меня. У тебя три модели А, Б и В. И три типа запросов, З1, З2, З3. В З1 используются все модели. В З2 испоьзуется А и Б. В З3 используется Б и В. Сколько раз ты напишешь код, проверяющий, что А.name не содержит пробелов?

Morsik
03.04.2018
16:54:24
Кто будет гарантировать их валидность?
если явно разделить слой валидации и слой работы над данными например

Andruha
03.04.2018
16:55:08
пилишь список обьектов потом const inserted = await Item.insertMany(items) game.items.push(inserted) await game.save()
const inserted = await Item.insertMany(itemsArray); SyntaxError: await is only valid in async function

Grigorii
03.04.2018
16:55:32
если явно разделить слой валидации и слой работы над данными например
Почему при этом нельзя, чтобы слой валидации использовал валидацию модели, которая описана в модели?)

Morsik
03.04.2018
16:55:38
const inserted = await Item.insertMany(itemsArray); SyntaxError: await is only valid in async function
почитай про промисы потом про async функции все равно рано или поздно придется

Stas
03.04.2018
16:55:53
точно нет, братан, один айтем падает, вот так точнее: _.each(marketItems, function(obj, index, list) { const newItem = new Item(obj); Item.save(newItem, function(err, item) { game.items.push(item); game.save(callback); }); }
Это я по скрину предположил, ты скинул первых 3 значения, глянь что у тебя там дальше, если последовательность как я описывал, то ты пушишь весь массив. На больше моих знаний не хватает)

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