Бэкенд на Node.js: создание сервера с нуля

Привет, я Кирилл Алехин — предприниматель, атишник и создатель веб-студии XSL в ОАЭ. Сегодня мы разберем, как создать бэкенд-сервер на Node.js с нуля. Node.js — это мощная платформа, которая позволяет писать серверный код на JavaScript, и она идеально подходит для быстрого прототипирования и масштабируемых решений.

Почему Node.js?

Node.js выбирают за его скорость, асинхронность и огромную экосистему модулей. Он отлично подходит для:

  • RESTful API;
  • реального времени (WebSockets);
  • микросервисной архитектуры;
  • быстрого старта проектов.

Шаг 1: Установка Node.js и настройка проекта

Первым делом убедитесь, что у вас установлен Node.js. Скачайте его с официального сайта или установите через пакетный менеджер (например, brew на macOS или apt на Linux).

Создайте папку для проекта и инициализируйте package.json:

mkdir my-node-server
cd my-node-server
npm init -y

Шаг 2: Установка Express.js

Express — это минималистичный фреймворк для Node.js, который упрощает создание сервера. Установите его:

npm install express

Шаг 3: Создание базового сервера

Создайте файл server.js и добавьте следующий код:

const express = require('express');
const app = express();
const PORT = 3000;

app.get('/', (req, res) => {
    res.send('Привет от сервера на Node.js!');
});

app.listen(PORT, () => {
    console.log(`Сервер запущен на порту ${PORT}`);
});

Запустите сервер:

node server.js

Откройте браузер и перейдите по адресу http://localhost:3000. Вы должны увидеть сообщение «Привет от сервера на Node.js!».

Шаг 4: Обработка маршрутов

Добавим несколько маршрутов для демонстрации работы API:

app.get('/api/users', (req, res) => {
    res.json([{ id: 1, name: 'Кирилл' }, { id: 2, name: 'Алексей' }]);
});

app.post('/api/users', (req, res) => {
    res.send('Пользователь создан');
});

Для тестирования POST-запросов используйте инструменты вроде Postman или cURL.

Шаг 5: Подключение базы данных (MongoDB)

Часто бэкенд требует хранения данных. Рассмотрим подключение MongoDB с помощью mongoose:

npm install mongoose

Добавьте в server.js:

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/mydb', { useNewUrlParser: true });

const User = mongoose.model('User', { name: String });

app.get('/api/db-users', async (req, res) => {
    const users = await User.find();
    res.json(users);
});

Шаг 6: Middleware и обработка ошибок

Express позволяет использовать middleware для обработки запросов. Например, для парсинга JSON:

app.use(express.json());

Добавьте обработчик ошибок:

app.use((err, req, res, next) => {
    console.error(err.stack);
    res.status(500).send('Что-то пошло не так!');
});

Шаг 7: Запуск сервера в продакшене

Для продакшена используйте pm2 или forever для автоматического перезапуска сервера:

npm install -g pm2
pm2 start server.js

Заключение

Мы создали базовый сервер на Node.js с маршрутами, подключением к базе данных и обработкой ошибок. Node.js — это мощный инструмент, который позволяет быстро разрабатывать бэкенд для любых проектов. Если вам нужна помощь в создании масштабируемых решений, обращайтесь в нашу веб-студию XSL в ОАЭ — мы знаем, как сделать ваш проект успешным!

Удачи в разработке!

от автора

написал в