Node.JS [ru] | Серверный JavaScript
11.4K subscribers
91 photos
5 videos
25 files
3.23K links
Все о разработке backend части на JavaScript (Node JS).
А так же: Express JS, Next JS, Nest, Socket.IO

Канал на бирже - https://telega.in/c/we_use_js

По вопросам рекламы или разработки: @g_abashkin

РКН: https://vk.cc/cJPGOP
Download Telegram
👩‍💻 4 типичные ошибки разработчиков Node.js

Растущее комьюнити Node.js - свидетельство надежности и эффективности этого инструмента. Однако не всем удается извлечь из него максимальную выгоду. Рассмотрим самые распространенные ошибки разработчиков Node.js.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
👩‍💻 Пользовательские события CustomEvent

JavaScript CustomEvent расширяют функциональность встроенной системы событий. Проще говоря, они позволяют программистам создавать и обрабатывать события, уникальные для их приложения, и в этой статье мы расскажем о них всё.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Как преобразовать Node.js Buffer в String

При преобразовании между Buffer и String может быть указана кодировка символов. Если кодировка не указана, по умолчанию будет использоваться UTF-8

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Задачка по NodeJS

Создайте приложение на Node.js, которое принимает URL в качестве аргумента командной строки, загружает HTML-контент по этому URL и сохраняет его в файл page.html. Программа должна также уметь выводить размер загруженного HTML-контента в байтах.

➡️ Пример:

node app.js download "https://example.com" — загружает страницу по указанному URL и сохраняет в файл page.html.
node app.js size "https://example.com" — выводит размер HTML-контента, загруженного по URL.

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

const fs = require('fs');
const https = require('https');
const url = process.argv[3];
const action = process.argv[2];
const filePath = 'page.html';

if (!action || !url) {
console.log('Используйте: node app.js <download|size> <URL>');
process.exit(1);
}

function downloadPage(url) {
https.get(url, (res) => {
let data = '';
res.on('data', (chunk) => {
data += chunk;
});

res.on('end', () => {
fs.writeFile(filePath, data, (err) => {
if (err) {
console.error('Ошибка при сохранении страницы:', err);
process.exit(1);
}
console.log('Страница загружена и сохранена в page.html');
});
});
}).on('error', (err) => {
console.error('Ошибка загрузки страницы:', err);
process.exit(1);
});
}

function getPageSize(url) {
https.get(url, (res) => {
let data = '';
res.on('data', (chunk) => {
data += chunk;
});

res.on('end', () => {
console.log(`Размер HTML-контента: ${Buffer.byteLength(data, 'utf8')} байт`);
});
}).on('error', (err) => {
console.error('Ошибка загрузки страницы:', err);
process.exit(1);
});
}

if (action === 'download') {
downloadPage(url);
} else if (action === 'size') {
getPageSize(url);
} else {
console.log('Неизвестное действие. Используйте "download" или "size".');
}
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👎5😁2
👩‍💻 Дата и время в JavaScript

Учимся работать с датой и временем в JavaScript: разбираемся с определением и способом создания объекта Data, его методами и форматами вывода.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
⚡️Уже работаешь с Vue, но автотесты и UI-компоненты всё ещё вызывают стресс? Пора действовать! Записывайся на вебинары, которые проходят в рамках курса «Vue.js разработчик».

Бесплатный вебинар
«Пишем Автотесты на Vue.js»
🗓 9 октября, 20:00

На вебинаре:
• Компонентное, 2E2, Unit-тестирование — разложим по полочкам
• Библиотеки Vue: Cypress и Vitest — разберём на практике
• Напишем первые автотесты — легко и без страха

Для разработчиков, которые хотят освоить автотесты во Vue и прокачать навыки, которые пригодятся на любых проектах.

Бесплатный вебинар «Почему во Vue проще: интерактивные UI-компоненты за минуты»
🗓 22 октября, 20:00

На вебинаре:
• Модальные окна, слайдеры, выпадающие меню — делаем с нуля
• Реактивность Vue в действии — управляем состоянием и анимацией
• Почему Vue быстрее и проще, чем React для UI

Для фронтенд-разработчиков, которые хотят ускорить создание интерфейсов и расширить портфолио практичными компонентами.

Записаться на вебинары: https://vk.cc/cQ0z2g

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
1
⚙️ PostgreSQL Antipatterns: валим «слона» — highload на ровном месте

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔬 Тестируй даже то, что кажется надёжным

«Это никогда не ломается» — последняя фраза перед катастрофой. Особенно в частях кода, которые трогают редко.

👉 Совет: пиши тесты для стабильных участков кода. Именно они чаще всего становятся ловушкой, когда всё вокруг уже поменялось, а эти куски — нет. Спокойствие в проде начинается с паранойи в деве.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1