Spec-Zone.ru › Deno 2

Как использовать Express с Deno

Express — популярный веб-фреймворк, известный своей простотой и отсутствием жестких требований, с обширным экосистемой middleware.

Это руководство покажет вам, как создать простой API с помощью Express и Deno.

Просмотреть исходный код здесь.

Создать main.ts

Давайте создадим main.ts:

touch main.ts

В main.ts, давайте создадим простой сервер:

// @deno-types="npm:@types/express@4.17.15"
import express from "npm:express@4.18.2";

const app = express();

app.get("/", (req, res) => {
  res.send("Welcome to the Dinosaur API!");
});

app.listen(8000);

Давайте запустим этот сервер:

deno run -A main.ts

И откройте наш браузер по адресу localhost:8000. Вы должны увидеть:

Добро пожаловать в API динозавров!

Добавить данные и маршруты

Следующий шаг — добавление данных. Мы будем использовать данные о динозаврах, которые мы нашли в этой статье. Не стесняйтесь скопировать их отсюда.

Давайте создадим data.json:

touch data.json

И вставьте данные о динозаврах.

Далее, давайте импортируем эти данные в main.ts. Давайте добавим эту строку в начало файла:

import data from "./data.json" assert { type: "json" };

Затем, мы можем создать маршруты для доступа к этим данным. Для простоты, давайте просто определим GET обработчики для /api/ и /api/:dinosaur. Добавьте нижеследующее после строки const app = express();:

app.get("/", (req, res) => {
  res.send("Welcome to the Dinosaur API!");
});

app.get("/api", (req, res) => {
  res.send(data);
});

app.get("/api/:dinosaur", (req, res) => {
  if (req?.params?.dinosaur) {
    const found = data.find((item) =>
      item.name.toLowerCase() === req.params.dinosaur.toLowerCase()
    );
    if (found) {
      res.send(found);
    } else {
      res.send("No dinosaurs found.");
    }
  }
});

app.listen(8000);

Давайте запустим сервер с deno run -A main.ts и посмотрим на localhost:8000/api. Вы должны увидеть список динозавров:

[
  {
    "name": "Aardonyx",
    "description": "An early stage in the evolution of sauropods."
  },
  {
    "name": "Abelisaurus",
    "description": "\"Abel's lizard\" has been reconstructed from a single skull."
  },
  {
    "name": "Abrictosaurus",
    "description": "An early relative of Heterodontosaurus."
  },
...

И когда мы перейдём по адресу localhost:8000/api/aardonyx:

{
  "name": "Aardonyx",
  "description": "An early stage in the evolution of sauropods."
}

Отлично!

© 2018–2024 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/tutorials/how_to_with_npm/express

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API