Создание API для новостей с использованием Node.js

JavaScriptBeginner
Практиковаться сейчас

Введение

В этом проекте вы научитесь создавать простой API для новостей с использованием Node.js. Вы узнаете, как создать сервер, обрабатывать разные маршруты и возвращать данные о новостях в определенном формате.

👀 Предварительный просмотр

curl http://localhost:8080/news
## Вывод:
## [{"channelId":"5572a108b3cdc86cf39001cd","name":"National Focus"},{"channelId":"5572a108b3cdc86cf39001ce","name":"International Focus"}]

curl http://localhost:8080
## Вывод:
## 404

🎯 Задачи

В этом проекте вы научитесь:

  • Как создать сервер с использованием Node.js
  • Как обработать маршрут /news и вернуть данные о новостях
  • Как обработать другие маршруты и вернуть ответ 404

🏆 Достижения

После завершения этого проекта вы сможете:

  • Разобраться в основах создания сервера с использованием Node.js
  • Реализовать простой API для возврата данных о новостях
  • Обрабатывать разные маршруты и предоставлять соответствующие ответы

Создайте сервер

Для начала работы откройте редактор. Вы должны увидеть файл в редакторе - "app.js".

В этом шаге вы научитесь создавать сервер с использованием Node.js. Следуйте шагам ниже, чтобы выполнить этот шаг:

  1. Откройте файл app.js в своей кодирующей среде.

  2. Импортируйте модуль http, который предоставляет функциональность для создания сервера:

    const http = require("http");
    
  3. Создайте новый сервер с использованием метода createServer():

    const serve = http.createServer();
    
  4. Добавьте слушатель событий для сервера, чтобы обрабатывать входящие запросы:

    serve.on("request", (req, res) => {
      // TODO: Добавьте код для обработки запроса
    });
    
  5. Запустите сервер и прослушивайте порт 8080:

    serve.listen(8080, () => {
      console.log("Сервис запущен!");
    });
    

Обработайте маршрут /news

В этом шаге вы научитесь обрабатывать маршрут /news и возвращать данные о новостях. Следуйте шагам ниже, чтобы выполнить этот шаг:

  1. Внутри слушателя события запроса установите заголовок ответа для использования формата utf8:

    res.setHeader("Content-type", "text/html;charset=utf8");
    
  2. Проверьте запрашиваемый URL:

    if (req.url == "/news") {
      // Обработайте маршрут /news
    } else {
      // Обработайте другие маршруты
    }
    
  3. Подготовьте данные о новостях в требуемом формате:

    const data = [
      {
        channelId: "5572a108b3cdc86cf39001cd",
        name: "National Focus"
      },
      {
        channelId: "5572a108b3cdc86cf39001ce",
        name: "International Focus"
      }
    ];
    
  4. Отправьте данные о новостях в качестве ответа:

    res.end(JSON.stringify(data));
    

Обработайте другие маршруты

В этом шаге вы научитесь обрабатывать другие маршруты, которые не /news.

  1. Внутри слушателя события запроса добавьте блок else, чтобы обработать другие маршруты:

    if (req.url == "/news") {
      // Обработайте маршрут /news
      //...
    } else {
      // Обработайте другие маршруты
      res.end("404");
    }
    
  2. В блоке else отправьте ответ 404, чтобы показать, что запрошенный маршрут не найден.

Теперь ваш файл app.js должен выглядеть так:

const http = require("http");
const serve = http.createServer();

serve.on("request", (req, res) => {
  // TODO: Добавьте код для обработки запроса
  res.setHeader("Content-type", "text/html;charset=utf8");
  console.log(req.url);
  if (req.url == "/news") {
    const data = [
      {
        channelId: "5572a108b3cdc86cf39001cd",
        name: "National Focus"
      },
      {
        channelId: "5572a108b3cdc86cf39001ce",
        name: "International Focus"
      }
    ];

    res.end(JSON.stringify(data));
  } else {
    res.end("404");
  }
});

serve.listen(8080, () => {
  console.log("Сервис запущен!");
});

Тестируйте сервер

  1. Запустите сервер с использованием следующей команды в терминале:

    node app.js
    
  2. Откройте снова новый терминал и проверьте, что терминал работает правильно, с использованием следующей команды:

curl http://localhost:8080/news
## Вывод:
## [{"channelId":"5572a108b3cdc86cf39001cd","name":"National Focus"},{"channelId":"5572a108b3cdc86cf39001ce","name":"International Focus"}]

curl http://localhost:8080
## Вывод:
## 404

Поздравляем! Вы успешно создали API для новостей с использованием Node.js.

Резюме

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

✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться