TGViewer
Node.js Backend | YeaHub Node.js Backend | YeaHub @yeahub_node_backend · 464 subscribers
Post #7 68
#ЧеКак
🤔 Создание простого сервера для сокращения URL

Создайте простой сервер на Node.js с использованием Express, который принимает длинный URL и возвращает сокращённую версию. При переходе по сокращённому URL сервер должен перенаправлять на исходный URL.

Решение задачи

npm init -y
npm install express nanoid

const express = require('express');
const { nanoid } = require('nanoid');

const app = express();
const port = 3000;

app.use(express.json());

const urlDatabase = {};

// Создание сокращенного URL
app.post('/shorten', (req, res) => {
const { url } = req.body;
if (!url) {
return res.status(400).json({ error: 'URL is required' });
}

const id = nanoid(6);
urlDatabase[id] = url;
res.json({ shortUrl: `http://localhost:${port}/r/${id}` });
});

// Перенаправление по сокращенному URL
app.get('/r/:id', (req, res) => {
const originalUrl = urlDatabase[req.params.id];
if (originalUrl) {
res.redirect(originalUrl);
} else {
res.status(404).send('URL not found');
}
});

// Запуск сервера
app.listen(port, () => {
console.log(`Server is running on http://localhost:${port}`);
});


👉 Новости 👉 Платформа
More from @yeahub_node_backend
  1. Oct 16, 2026#trainer #курсы #тренажеры 📚 CodeChef Онлайн-платформа программирования, которая позволяе…
  2. Oct 15, 2026#Собес #jwt #claim #signature 🤔 Как работает авторизация на основе JWT-токенов? 💬 Кратко…
  3. Oct 14, 2026#Собес #falsy #value 🤔 Чем отличается проверка на falsy-значение от строгого сравнения? �…
  4. Oct 12, 2026#Собес #Observable #subscribe #RxJS 🤔 Как подписаться на Observable и получить данные из…
  5. Oct 9, 2026#book #начинающие 📚 Node.js: разработка приложений в микросервисной архитектуре с нуля Ос…
  6. Oct 8, 2026#Собес #volume #bind #mount 🤔 Как считать данные, записанные контейнером? 💬 Кратко: Данн…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →