Введение
В этом проекте вы научитесь создавать простой 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. Следуйте шагам ниже, чтобы выполнить этот шаг:
Откройте файл
app.jsв своей кодирующей среде.Импортируйте модуль
http, который предоставляет функциональность для создания сервера:const http = require("http");Создайте новый сервер с использованием метода
createServer():const serve = http.createServer();Добавьте слушатель событий для сервера, чтобы обрабатывать входящие запросы:
serve.on("request", (req, res) => { // TODO: Добавьте код для обработки запроса });Запустите сервер и прослушивайте порт 8080:
serve.listen(8080, () => { console.log("Сервис запущен!"); });
Обработайте маршрут /news
В этом шаге вы научитесь обрабатывать маршрут /news и возвращать данные о новостях. Следуйте шагам ниже, чтобы выполнить этот шаг:
Внутри слушателя события запроса установите заголовок ответа для использования формата
utf8:res.setHeader("Content-type", "text/html;charset=utf8");Проверьте запрашиваемый URL:
if (req.url == "/news") { // Обработайте маршрут /news } else { // Обработайте другие маршруты }Подготовьте данные о новостях в требуемом формате:
const data = [ { channelId: "5572a108b3cdc86cf39001cd", name: "National Focus" }, { channelId: "5572a108b3cdc86cf39001ce", name: "International Focus" } ];Отправьте данные о новостях в качестве ответа:
res.end(JSON.stringify(data));
Обработайте другие маршруты
В этом шаге вы научитесь обрабатывать другие маршруты, которые не /news.
Внутри слушателя события запроса добавьте блок
else, чтобы обработать другие маршруты:if (req.url == "/news") { // Обработайте маршрут /news //... } else { // Обработайте другие маршруты res.end("404"); }В блоке
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("Сервис запущен!");
});
Тестируйте сервер
Запустите сервер с использованием следующей команды в терминале:
node app.jsОткройте снова новый терминал и проверьте, что терминал работает правильно, с использованием следующей команды:
curl http://localhost:8080/news
## Вывод:
## [{"channelId":"5572a108b3cdc86cf39001cd","name":"National Focus"},{"channelId":"5572a108b3cdc86cf39001ce","name":"International Focus"}]
curl http://localhost:8080
## Вывод:
## 404
Поздравляем! Вы успешно создали API для новостей с использованием Node.js.
Резюме
Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.



