Сейчас в мире серверной части существует много предположений о том, что либо означает заменит 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/, чтобы узнать больше. Спасибо