Сейчас в мире серверной части существует много предположений о том, что либо означает заменит Node.JS, задолго до того, как я провел исследование. вывод, к которому я пришел, явно «НЕ СЕЙЧАС».
За девизом определенно будущее, но пока он не убьет всеми любимый Node.JS.
Это просто новая игрушка в городе для разработчиков и программисты, так что просто получайте удовольствие, играя с ним.
Перейдем к введению о Denon, который представляет собой безопасную среду выполнения для JavaScript, а также для TypeScript.
Он был построен на Механизм V8 так же, как Node.js, а также Rust и Tokio.
- означает по умолчанию безопасен, так как он не обеспечивает доступ к файлам, среде или сети, если он не включен.
- Одно из многообещающих преимуществ Denon заключается в том, что все сценарии могут быть объединены в один файл JS, и он совместим с браузером.
Сравнение NAME с Node.JS:
- у Dennе нет модулей, ему не нужно использовать npm и package.json, а также ограничивает использование третьи стороны и модули, нет, он использует модули, указанные как URL-адреса или пути к файлам, просто импортируйте их в свой код и будьте готовы к их использованию.
- означает разные API от Node.JS, поскольку все асинхронные действия возвращают обещание.
- означает отброшено использование require () и разрешен только импорт.
- Выгодное обозначение позволяет использовать top-level-await, который может выполняться напрямую без асинхронной функции.
Установка:
Denon работает в macOS, Linux и Windows и не имеет внешних зависимостей.
Использование оболочки (macOS и Linux):
$curl -fsSL https://deno.land/x/install/install.sh | sh
Использование PowerShell (Windows):
$iwr https://deno.land/x/install/install.ps1 -useb | iex
Вы также можете использовать Scoop и Chocolatey для Windows или даже Cargo, которые также могут работать для Linux и macOS.
После установки запустите dem --version, если он печатает версию, которая в настоящее время является 1.1.0, ваша установка прошла успешно.
Вы также можете использовать repl с обозначением, как в Node.JS.
Для начала я собираюсь использовать oak, который является средой промежуточного программного обеспечения для HTTP-сервера NAME, включая промежуточное ПО маршрутизатора.
Эта структура промежуточного программного обеспечения основана на Koa и промежуточном маршрутизаторе на основе @ koa / router.
Вы также можете использовать другую серверную структуру для своей реализации, например Pogo, которая представляет собой простую в использовании, безопасную и выразительную структуру для написания веб-серверов и приложений. Он вдохновлен хапи.
Вы будете получать эти сторонние модули с https://deno.land/x, для mongodb, я использую identify_mongo, который является драйвером базы данных MongoDB, разработанным для NAME, на основе официального пакета mongodb
библиотеки ржавчины, который включает только несколько запросов mongodb, а не все, это insertOne, insertMany , find, findOne, updateOne, count, updateMany, deleteOne и deleteMany вместе с агрегатом. С их помощью я собираюсь выполнить основные CRUD выполняет операции над MongoDb с помощью oak, а также сохраняет данные в нашем Redis, для redis я использую обозначение- redis.
Я использую простую структуру для реализации, файл сервера, файл маршрутизатора для включения всех моих маршрутов, файл службы redis, который подразумевает, что мой порт и хост будут использоваться для redis, файл базы данных для связи с моей базой данных (mongodb) , файл констант, содержащий постоянные сообщения и значения, которые необходимо определить, и файл контроллера, который содержит всю бизнес-логику, которая должна выполняться.
Здесь он находится в моем файле сервера
Я просто импортирую приложение из обозначающего дуба,
Класс Application используется для обертывания функции serve () из пакета http.
- Класс Application имеет два метода: .use () и .listen ().
- Наше промежуточное ПО добавляется из метода .use (), а метод .listen () запускает сервер и начинает обрабатывать запросы
с зарегистрированным промежуточным программным обеспечением. Всякий раз, когда вызывается наше промежуточное ПО, оно передается как контекст.
- context.request содержит информацию о запросе и аналогично context.response содержит информацию об ответе, который отправляется нашему клиенту.
Аналогичным образом импортируйте Маршрутизатор из « https://deno.land/x/oak/mod.ts ' В файл маршрутизатора, который создает промежуточное ПО, которое может использоваться с приложением для включения маршрутизации на основе пути к запросу.
Запустите сервер с помощью:
обозначает запуск --allow-read --allow-env --allow-write --unstable --allow-net
--allow-plugin server.ts
Поскольку API подключаемого модуля Deno все еще находится в нестабильном состоянии, необходимо использовать флаг нестабильность. Остальные флаги предназначены для разрешения чтения, записи и подключения к сети, а также для использования разрешения env, если вы используете файл .env для своего кода.
Теперь, когда мой файл сервера готов, просто подключитесь к моему MongoDb, импортируйте MongoClient, создайте клиента и с помощью метода connectWithUri, который принимает URL-адрес вашего подключения, создайте ваша база данных и коллекция, с которой вы хотите выполнять свои операции.
Вы должны использовать dotenv для своей реализации и можете сохранить строку подключения в файле .env по определенным причинам, а также путем импорта dotenv / load.ts из файла и используя «Deno.env.get (anyVariable)», можно использовать значение переменной, объявленной в вашем файле .env, здесь я просто использую свой локальный хост, поэтому в настоящее время я я не слежу за этим процессом.
Теперь импортируйте соединение из den-redis и объявите свои имя хоста и порт для своего соединения redis.
Если у вас не установлен redis или вы новичок в использовании redis, загрузите его с redis.io и установите с помощью команды sudo apt install redis-server.
Приступая к созданию ваших маршрутов в файле импорта роутера, роутер из дуба создает экземпляр нового роутера и начинает создавать ваши маршруты.
Node oak обеспечивает чистоту вашего кода при простом создании различных маршрутов от вашего маршрутизатора. Вы также можете использовать маршруты в вашем файле сервера, если у вас очень короткий проект.
В самом первом маршруте я вставляю пользователя в свою коллекцию, используя контекстный запрос и ответ, я принимаю запрос в теле и деструктурирую тело запроса.
в конце концов, после моих запросов и логики я сохраняю свои данные в базе данных и устанавливаю значение ключа в redis и даю своему клиенту желаемый ответ, используя контекст
Использование почтальона для запроса и ответа моего API, чтобы увидеть ответ, просмотреть запрос и ответ для конечной точки insertOne
Здесь insertOne возвращает $ oid, если вы знакомы с _id, они такие же, это просто представление, внутри они хранятся таким же образом для получения дополнительной информации посетите: https://docs.mongodb.com/manual/reference/mongodb-extended-json/
Код состояния HTTP 201 может немного сбить вас с толку, но на самом деле он представляет собой новый ресурс, который создается, все зависит от вас и вашего понимания, вы все равно можете использовать код состояния 200.
Точно так же вы можете продолжить с другими запросами и ответами, я просто делюсь другими запросами и ответами других моих API.
и, конечно же, продолжайте проверки в каждом API на основе ваших требований, например,
2. Получить всех пользователей
3. Получите одного пользователя на основе его идентификатора.
Для этих видов извлечения сначала предпочтительнее данные, поступающие из Redis, и если ваши данные отсутствуют в Redis (сброшен или сервер Redis не работает)
Вы можете только затем запросить свою базу данных, вы можете использовать это в случае userList API также, как показано ниже, я сделал это для поиска одним пользователем
4. Обновите документ из коллекции.
В этом API я действительно пропустил mongoose и, в основном, findOneAndUpdate (), поскольку для обновления одного ключа мне пришлось снова запросить базу данных для обновленных значений, которые должны быть перезаписаны в redis для тот же ключ, я пропустил использование перехватчиков post и pre, которые могут легко заменить весь обновленный документ в моем Redis после выполнения запроса.
Когда вы пытаетесь запустить свой код с помощью findOneAndUpdate (), выдается ошибка: Свойство «findOneAndUpdate» не существует для определенного типа.
Поскольку на данный момент я не смог найти ничего в обозначении для объявления схемы мангуста для нашей коллекции, мне пришлось смириться с этим и использовать примитивные способы для установки значения моего ключа в redis.
5. Удалить одного пользователя.
Просто обновите статус и следуя внутренним правилам «SOFT» удалите пользователя и используйте команду del, чтобы удалить ключ из redis
Это все, ребята, это основы для means с oak mongodb и redis
Я считаю, что вы можете попробовать себя в своих собственных базовых проектах. с обозначением и наслаждайтесь обозначением так же, как Node.JS
Продолжайте учиться, ребята, Жизнь и программирование - это просто обучение
Продолжайте расти. Пожалуйста, похлопайте и поделитесь, если вам понравилась статья. Спасибо за прочтение. Посетите https://deno.land/, чтобы узнать больше. Спасибо