Рубрика «mongodb» - 10

React.js на русском языке. Часть вторая - 1

Перевод официальной документации библиотеки React.js на русском языке.

Оглавление:

1 — Часть первая
2 — Часть вторая

Внедрение JSX

Ознакомьтесь с этим объявлением переменных:

const element = <h1>Hello, world!</h1>;

Этот забавный синтаксис тега не представляет собой ни строку, ни HTML. Он называется JSX и представляет собой расширение языка в JavaScript. Мы рекомендуем использовать его при работе с React, чтобы описать как должен выглядеть UI. JSX может напоминать вам HTML разметку, но он полноценно работает в JavaScript.

JSX производит «элементы» React. В следующем разделе мы будем изучать их.
Читать полностью »

«В следующие два года нужно не пытаться изобразить из себя что-то особенное, а просто быть достаточно умным, чтобы компоновать то, что человечество уже создало» (с) bobuk

Год назад на внутреннем хакатоне наши ростовские ребята за ночь скрестили визуальный текстовый редактор, «Типограф Муравьева» и антиплагиат-сервис. Получилась штука, которая помогала быстро подготовить и отправить публикацию в блог.

Одно время штука жила как сайд-проект, затем нам дали немного ресурсов — ну, как внутреннему стартапу. В итоге получилось удобное коллективное медиа без редакции.

Как мы запускали Хабр для гуманитариев - 1
Старик Гутенберг был бы доволен

Оно позволяет людям читать занятные истории, как дядька-водолаз 40 лет поднимает затонувшие корабли в Баренцевом море, а писателям на популярные нетехнические темы — немного зарабатывать на текстах.

Давайте посмотрим, что учитывать при разработке подобного сервиса, и что выбрать, чтобы без костылей.
Читать полностью »

GridFS — это спецификация MongoDB для хранения больших файлов. В этой статье я расскажу как можно легко загружать файлы в GridFS, а затем извлекать их из базы данных и отображать в браузере.
Читать полностью »

Примерно месяц назад, я рассказал Хабру о проекте Bagri: NoSQL базе данных с открытым кодом, построенной поверх распределенного кэша.

После достаточно неплохого отклика, решил написать статью о том как можно наращивать функционал Bagri путем написания расширений (extensions) используя встроенный API системы.

image

Читать полностью »

Возможно, всё что я напишу ниже – очевидно, и все этим пользуются давно, но я вот недавно только это понял и придумал, так что, может, кому и пригодится.

Yii2 и расширение yii2-mongodb к сожалению, не работает с вложенными документами, тем самым оставляя за бортом существенное преимущество документоориентированной БД.
В документации предлагают использовать расширение для вложенных документов, но можно обойтись и без него.
Предположим, у нас есть модель, формирующая PDF-файл для загрузки, и мы хотим следить за количеством его скачиваний, IP-адресами скачавших и, например, временем, когда файл был загружен.

Читать полностью »

В данной статье я расскажу вам как исходя из своего опыта я написал небольшой npm-модуль, который помог мне и, думаю, может помочь вам сэкономить приличное количество времени и сократить код практически в два раза.

Все начал с того что я решил написать изоморфный CMS для одного из моих проектов с использованием следующих технологий:

  • React — для постройки UI
  • Express — в качестве сервера
  • MongoDb + Mongoose — noSQL база данных
  • graphQL — основной API для взаимодействия с базой данных
  • Apollo-Client — коннектор для удобного вызова запросов и мутаций через graphQL
  • webpack — для сборки проекта и разделения клиентского и серверного кода

Упрощенная архитектура выглядит следующим образом:

__root
1 |__client
2 |__public
3 |__middleware
4 |__server

  1. React-компоненты
  2. Бандл клиентского кода и остальные публичные файлы
  3. Mongoose: схемы, дополнительные методы и graphQL: типы, класс с запросами, класс с мутациями, схема
  4. Бандл серверного кода вместе с express сервером

Читать полностью »

Всем доброго времени суток! Недавно жизнь подкинула автору увлекательную работу по развертыванию MongoDB кластера с настройкой репликации и шардирования, а также аутентификации c использованием x.509 сертификатов. В данной статье я в первую очередь хотел бы изложить свои мысли и поделиться полученными опытом. Так как некоторые вещи оказались не тривиальными и сделать их с первого раза не удавалось, то думаю мои пошаговые инструкции могут пригодиться для освещения вопроса тем кто только знакомится с шардированием данных и работой с MongoDB в целом.
Также я буду очень рад увидеть рекомендации по добавлению/изменению конфигурации кластера и просто вопросы или критику по самой статье или по сути вопроса.
Читать полностью »

Как мы делали мониторинг запросов mongodb - 1

Использование монги в production — достаточно спорная тема.
С одной стороный все просто и удобно: положили данные, настроили репликацию, понимаем как шардировать базу при росте объема данных. С другой стороны существует достаточно много страшилок, Aphyr в своем последнем jepsen тесте сделал не очень позитивные выводы.

По факту оказывается, что есть достаточно много проектов, где mongo является основным хранилищем данных, и нас часто спрашивали про поддержку mongodb в окметр. Мы долго тянули с этой задачей, потому что сделать "осмысленный" мониторинг на порядок сложнее, чем просто собрать какие-то метрики и настроить какие-нибудь алерты. Нужно сначала разобраться в особенностях поведения софта, чтобы понять, какие именно показатели отслеживать.

Как раз про сложности и проблемы я и хочу рассказать на примере реализации мониторинга запросов к mongodb.

Читать полностью »

Как я изобретал велосипед, или мой первый MEAN-проект - 1

Сегодня, в период стремительного развития веб-технологий, опытному фронтэнд-разработчику нужно всегда оставаться в тренде, каждый день углубляя свои познания. А что делать, если Вы только начинаете свой путь в мире веб? Вы уже переболели вёрсткой и на этом не хотите останавливаться. Вас тянет в загадочный мир JavaScript! Если это про Вас, надеюсь данная статья придётся к стати.

Читать полностью »

Хобби-проекты: lets-meet.ru — куда пойдем в пятницу - 1
Автор: Артем Трубачев

Идея создания этого приложения родилась, когда мы с коллегами в очередной раз собирались пойти в бар, но никак не могли договориться о дате. Все мы люди взрослые, и свободного времени у нас, конечно, мало. lets-meet.ru создан как раз чтобы определить, когда всем будет удобнее собраться.

В двух словах, это работает так: вы создаете встречу и указываете варианты даты, время и места. Также можно добавить дополнительные вопросы.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js