Как использовать 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