Задать вопрос
@vetalmatitskiy
testing engineer

Как подключится к mongodb из клиентского javascript?

доброго дня, уважаемые JavaScript-гуру. Есть ли возможность напрямую подключится к mongodb из клиентского javascript? у меня есть большая mongodb-база и хотел напрямую читать из нее данные для отображения в веб-приложении без лишних посредников на бекенде. среди монгодб-драйверов нашел лишь написанные для node.js, но не для клиенсткого JavaScript. существуют ли варианты подключиться напрямую из браузера? на форумах находил близкие вопросы, но там было только болтовня на тему, что такие варианты не нужны вообще и никаких примеров подключения
  • Вопрос задан
  • 500 просмотров
Подписаться 2 Оценить 4 комментария
Пригласить эксперта
Ответы на вопрос 2
@vshvydky
Vetal Matitskiy: на мой взгляд вы ленитесь запустить рест апи, давайте рассудим, нагрузка по выборке данных в любом случае будет храниться на сервере, отдавая такие возможности во фронтэнд вы лишаете себя контроля по числу запросов, их корректности, а как следствие создаете неконтроллируемую нагрузку на бд. Минусы, которые я вижу, число одновременных подключений к бд может быть огромным, зачем себя флудить? 2. любой запрос вне вашей логики может использовать поиски к неиндексированным данным, что может привести к блокировкам. 3. вы отдадите клиенту логин и пароль на чтение, что он будет делать с ними после этого только ему известно. Теперь о плюсах использования бекэнда, чтобы совсем лениться, как вариант ставим ноду и устанавливаем фреймворк sails.js, устанавливаем проект, получаем готовую базу для бекэнд апи, генерируем апи контроллер, описываем модель и что она будет выдавать, вот вам и выборка из бд, а клиента учим отрисовывать это все в фронтэнде. можно через тот же ангуляр.
я конечно понимаю, что это не ответ на ваш вопрос, но вы не можете найти решение именно потому, что так не надо решать.
Для примера sails new Project создаст проект
sails generate api post создаст фулрест апи с описанными методами find, findOne, create, update, destroy, populate, add, remove
ненужные отключаете и все готово.
Я конечно понимаю, держать бекэнд кажется лишним, но когда вы получите одновременно 5 - 10 запросов на полную выборку из огромных таблиц, ваш сервер встанет в ожидание и начнет отказывать клиентам в получении данных, поймете, что пришли не туда, куда хотели и будете все в спешке переделывать.

Естественно sails не обязателен в использовании, можно найти кучу других решений.
Вот например первый ответ из гугла: https://www.npmjs.com/package/restful-api
В любом случае я 10 раз рекомендую подумать перед тем, как отдавать такой функционал во фронтэнд. И да, если не передумаете, пришлите ссылку на готовый проект. может мне ваши данные покажутся полезными и я их целиком выкачаю ))))
Ответ написан
@Runic_Elf
На формуах вам посоветовали самое правильное решение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы