Создайте минимальный API на Node.js с использованием Express, который позволяет:
•
Получить список всех заметок.•
Добавить новую заметку.Требования:
1. Маршруты API:
• GET /notes
: Возвращает массив всех заметок. • POST /notes
: Добавляет новую заметку (передаётся в теле запроса).2. Хранилище данных:
•
Используйте массив в памяти. Каждая заметка должна содержать поля:{
"id": "уникальный идентификатор",
"content": "текст заметки"
}
3. Требования к корректности:
•
Заголовок заметки (content
) должен быть строкой и не быть пустым.Решение задачи
const express = require('express');
const { v4: uuidv4 } = require('uuid');
const app = express();
app.use(express.json());
let notes = [];
// Получить все заметки
app.get('/notes', (req, res) => {
res.json(notes);
});
// Добавить новую заметкуapp.post ('/notes', (req, res) => {
const { content } = req.body;
if (!content || typeof content !== 'string') {
return res.status(400).json({ error: 'Invalid content' });
}
const newNote = { id: uuidv4(), content };
notes.push(newNote);
res.status(201).json(newNote);
});
// Запуск сервера
const PORT = 3000;
app.listen(PORT, () => {
console.log(`Server running on http://localhost:${PORT}`);
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
#[RouteParameter]
В этой статье вы узнаете о PHP атрибуте
#[RouteParameter]
, который используется в Laravel для доступа к моделям, связанным с маршрутом, в классах запросов форм. Мы подробно рассмотрим, как применять этот атрибут и какие проблемы он решает.Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👎5
Статья рассказывает, как наблюдаемость помогает выявлять проблемы в микросервисных приложениях. Описаны метрики, логи, трассировки и инструменты для анализа производительности системы.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
FullStack JavaScript Разработчик для финтех-проекта
•
Node.js, TypeScript, React, PostgreSQL, RabbitMQ, TypeORM, Docker, TailwindCSS, RESTful API•
от 2 500 до 4 000 $ | от 3 летSenior Backend Developer
•
Node.js, TypeScript, NestJS, PostgreSQL, Apache Kafka, Terraform, Yandex Cloud, Kubernetes, Redis, ClickHouse•
от 350 000 ₽ | от 5 летSenior Backend Developer
•
Node.js, TypeScript, C#, Golang, PostgreSQL, Docker, Git, MongoDB•
Уровень дохода не указан | от 5 летFullstack разработчик
•
JavaScript (ES6+), HTML5, CSS3, React, TypeScript, Redux Toolkit, Webpack, SCSS, Node.js, Express, Passport.js, Axios, Socket.io, Telegraf, Redis, Sequelize, TypeORM, Postgres, MongoDB, MariaDB, GitLab CI, Jenkins, Nginx, Docker, Figma•
от 1 500 $ | от 3 летPlease open Telegram to view this post
VIEW IN TELEGRAM
• Заяц не вырастет в акулу. Или секреты гибкой инженерной культуры от Александра Бындю
• Все, пора увольняться: что я поняла после работы в токсичных командах
• Чем Cloud-инженер отличается от DevOps-инженера и что между ними общего
• Базовое программирование, или Почему джуны не могут пройти к нам собеседование
• Я стал аналитиком, потому что не смог быть программистом
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
path.resolve()
в Node.js и зачем оно используется?path.resolve()
— это метод модуля path
в Node.js, который возвращает абсолютный путь, объединяя переданные сегменты пути. Он полезен для построения пути к файлам и директориям независимо от текущей рабочей директории.const path = require('path');
// Построение абсолютного пути
const fullPath = path.resolve('folder', 'subfolder', 'file.txt');
console.log(fullPath); // Например: /Users/username/project/folder/subfolder/file.txt
🗣️ В этом примере path.resolve() объединяет сегменты пути и возвращает абсолютный путь к файлу. Это помогает избежать проблем с относительными путями и улучшает кросс-платформенность приложений.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🥰2❤1
Lead Backend Developer (Node.js) at US-based company
Team Lead (Node.js)
Backend Разработчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья рассказывает, как в MPA на микросервисной архитектуре избежать потерь сообщений при перезагрузке страницы. Рассматривается метод повторной отправки пропущенных WebSocket-сообщений.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1🐳1
Есть задача, которая кажется неподъёмной? Начать сложно, а прокрастинация растёт с каждой минутой.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍7💯5
Senior Node.js Developer
Node.js Backend Developer (Senior Level)
Senior Next.js Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Как автоматизировать SMS-опросы для обратной связи? Статья показывает, как отправлять SMS с помощью Node.js и Exolve SMS API, чтобы оперативно собирать мнения клиентов о товарах и услугах.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите скрипт на Node.js, который читает строки из стандартного ввода и выводит их в верхнем регистре. Если пользователь вводит "exit", программа завершается.
Пример:
hello
HELLO
world
WORLD
exit
Решение задачи
process.stdin.setEncoding('utf8');
process.stdin.on('data', (data) => {
const lines = data.trim().split('\n');
for (const line of lines) {
if (line.toLowerCase() === 'exit') {
process.exit(0);
} else {
console.log(line.toUpperCase());
}
}
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
• Без головы — лучше! Разворачиваем собственную Headless CMS Directus в облаке
• Пишем Realtime для Multiple-page application в микросервисной архитектуре
• Как написать Google Calendar на коленке? Обзор FullCallendar
• Как внедрить наблюдаемость в микросервисное приложение с помощью OpenTelemetry, Jaeger и Prometheus
• Поддержка временных зон в фулстек-приложении на основе NestJS и Angular: работа с REST и WebSockets
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Понимание нового синтаксиса атрибутов импорта и причин, по которым нельзя полагаться только на расширения файлов.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Создайте простой сервер на 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 = {};
// Создание сокращенного URLapp.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}`);
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🤨1
Junior Backend разработчик (Node.JS)
Junior разработчик/стажер Node.js, React, Fullstack
Junior Backend-программист NodeJS
Junior+ Node.js разработчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Пример миграции базы данных для нового поля и добавления функционала на бэкенде и фронтенде. Пошаговый разбор: обновление схемы, логика на сервере и интерфейс для изменения данных.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Intersection Observer
в JavaScript и зачем он используется?Intersection Observer
— это API, которое позволяет отслеживать, когда элемент входит или выходит из области видимости (viewport). Оно полезно для оптимизации ленивой загрузки изображений, бесконечной прокрутки или анимаций при прокрутке.// Целевой элемент для наблюдения
const target = document.querySelector('.observe-me');
// Callback-функция для обработки пересечений
const observerCallback = (entries, observer) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
console.log('Элемент видим:', entry.target);
observer.unobserve(entry.target); // Останавливаем наблюдение
}
});
};
// Настройки наблюдателя
const observerOptions = {
root: null, // Вся область видимости
threshold: 0.5 // 50% видимости элемента
};
// Создаем наблюдатель
const observer = new IntersectionObserver(observerCallback, observerOptions);
// Начинаем наблюдение за элементом
observer.observe(target);
🗣️ В этом примере API отслеживает, когда .observe-me становится видимым на 50%. Intersection Observer делает прокрутку более производительной, так как избавляет от необходимости использовать события scroll.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3
Fullstack разработчик (Node.js + Vue.js)
•
Node.js, Vue.js, NestJS, Next.js, PostgreSQL, RabbitMQ, Redis, Kubernetes•
от 240 000 ₽ на руки | 1–3 годаNode.js разработчик
•
Node.js, TypeScript, NestJS, PostgreSQL, MongoDB, RabbitMQ, Docker, Redis, GraphQL, GitLab, Ansible•
Уровень дохода не указан | 3–6 летBackend Developer (Node.js)
•
Node.js, TypeScript, NestJS, PostgreSQL, Redis, Docker, Linux, Git•
от 270 000 до 290 000 ₽ на руки | 3–6 летPlease open Telegram to view this post
VIEW IN TELEGRAM
Рассматриваем анализ данных Хабра за 2024 год: популярные статьи, скрытые тренды и интересные находки. Node.js, нейросети и Google Таблицы в деле!
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM