CommonJS и ES Modules (ESM) — два способа работы с модулями в Node.js. CommonJS является стандартом, который использовался с момента создания Node.js, в то время как ES Modules соответствуют стандарту JavaScript ES6 и обеспечивают более современный подход.
CommonJS:
•
Использует require()
для импорта модулей и module.exports
для экспорта.•
Выполняется синхронно.// commonjs-module.js
module.exports = function greet(name) {
return `Hello, ${name}!`;
};
// main.js
const greet = require('./commonjs-module');
console.log(greet('Alice')); // Hello, Alice!
ES Modules (ESM):
•
Использует import
и export
ключевые слова.•
Выполняется асинхронно.// esm-module.mjs
export function greet(name) {
return `Hello, ${name}!`;
}
// main.mjs
import { greet } from './esm-module.mjs';
console.log(greet('Alice')); // Hello, Alice!
🗣️ В современных приложениях рекомендуется использовать ES Modules благодаря их соответствию стандарту ES6 и поддержке асинхронности. Однако, CommonJS по-прежнему актуален для старых проектов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
Node.js Backend разработчик (удаленно)
•
Node.js, TypeScript, JavaScript, TCP/IP, PostgreSQL, ClickHouse, Google Pub/Sub, Kafka, RabbitMQ•
от 180 000 до 660 000 ₽ | от 2 летСистемный аналитик
•
BPMN, UML, SQL, OpenProject, Postman•
от 200 000 до 300 000 ₽ | от 3 летMiddle/Senior Node.js developer
•
Node.js, PostgreSQL, MongoDB, Redis, TypeScript, Docker, Kubernetes, RESTful API•
Уровень дохода не указан | от 3 летBackend Developer (Node.js)
•
Node.js, Oracle DB, PostgreSQL, SQL, RabbitMQ, Kafka•
Уровень дохода не указан | от 3 летPlease open Telegram to view this post
VIEW IN TELEGRAM
Статья посвящена созданию кроссплатформенного торгового робота для Московской биржи через API брокера. Рассматриваются проблемы готовых решений, таких как QUIK, и преимущества разработки легкого и гибкого инструмента.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Держать в памяти всю структуру проекта, сроки задач и дедлайны? Это рецепт для выгорания.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
Статья объясняет, как спрятать данные в PNG-изображении, используя младшие биты (LSB) пикселей. Рассматривается структура PNG, каналы R, G, B и альфа, а также методы внедрения данных без заметного изменения картинки.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Откройте для себя возможности управления приоритетами и контроля выполнения задач в JavaScript с помощью нового Scheduler API. Новый подход поможет вам стать более продуктивными и эффективными в своей работе.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Напишите функцию, которая принимает массив объектов и ключ. Функция должна возвращать новый массив, удаляя объекты с повторяющимися значениями указанного ключа. Сохраняйте порядок элементов.
Пример:
const data = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Alice' },
{ id: 4, name: 'Charlie' },
{ id: 5, name: 'Bob' }
];
const result = removeDuplicatesByKey(data, 'name');
console.log(result);
// Ожидаемый результат:
// [
// { id: 1, name: 'Alice' },
// { id: 2, name: 'Bob' },
// { id: 4, name: 'Charlie' }
// ]
Решение задачи
function removeDuplicatesByKey(array, key) {
const seen = new Set();
return array.filter(item => {
const value = item[key];
if (seen.has(value)) {
return false;
}
seen.add(value);
return true;
});
}
// Пример использования:
const data = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Alice' },
{ id: 4, name: 'Charlie' },
{ id: 5, name: 'Bob' }
];
const result = removeDuplicatesByKey(data, 'name');
console.log(result);
Please open Telegram to view this post
VIEW IN TELEGRAM
👎6👍2
• Быстрее пули: как найти счастье с PostgreSQL
• Куда движется Laravel? Обзор интервью с Taylor Otwell
• Nexus-IoC — хорошо знакомый незнакомец в мире TypeScript и DI
• Как сделать React Server Components в Electron с помощью Next.js и без открытых портов
• 10 не самых очевидных причин, чтобы уволиться
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья рассказывает о создании симуляционной модели для тестирования комбинаций фичей в алгоритмах курьерки. Это позволило анализировать влияние наборов фичей на метрики для разных регионов без долгих А/Б тестов, ускоряя внедрение идей.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите функцию, которая принимает путь к файлу и возвращает Promise. Функция должна читать файл построчно с использованием потоков (
streams
), подсчитывать количество строк и возвращать объект с количеством строк и содержанием первой строки.Пример использования:
const filePath = "./example.txt";
processFile(filePath)
.then(result => {
console.log(result);
// Ожидаемый результат (пример):
// { linesCount: 10, firstLine: "This is the first line of the file." }
})
.catch(error => {
console.error("Error:", error);
});
Решение задачи
const fs = require("fs");
const readline = require("readline");
function processFile(filePath) {
return new Promise((resolve, reject) => {
const stream = fs.createReadStream(filePath, { encoding: "utf8" });
const rl = readline.createInterface({ input: stream });
let linesCount = 0;
let firstLine = null;
rl.on("line", line => {
if (linesCount === 0) {
firstLine = line;
}
linesCount++;
});
rl.on("close", () => {
resolve({ linesCount, firstLine });
});
rl.on("error", error => {
reject(error);
});
});
}
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Backend разработчик NODE.JS
Node.js backend developer
Backend Developer (JS, OpenAI API)
Please open Telegram to view this post
VIEW IN TELEGRAM
В статье рассказывается о создании аналога знаменитого скринсейвера «Ленты» из Windows 7 для Linux с помощью Electron. Автор делится опытом адаптации найденного на GitHub JS-скрипта для создания полноценного кроссплатформенного настольного приложения.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
os
модуль в Node.js и как он используется?os
— это встроенный модуль в Node.js, который предоставляет информацию о операционной системе, включая архитектуру, платформу, память и данные о процессорах. Он полезен для написания кросс-платформенных приложений и мониторинга системы.const os = require('os');
console.log('Платформа:', os.platform()); // Выводит платформу, например 'linux'
console.log('Архитектура:', os.arch()); // Выводит архитектуру, например 'x64'
console.log('Свободная память:', os.freemem()); // Количество свободной памяти
🗣️ В этом примере модуль os используется для получения базовой информации об операционной системе. Это удобно для настройки приложений под конкретные системные параметры.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
JavaScript FullStack разработчик
•
JavaScript, HTML, CSS, TypeScript, Node.js, Vue.js, SQL, Git, PostgreSQL•
от 80 000 до 130 000 ₽ | 1–3 годаРазработчик Node.js («Сборка заказов»)
•
Node.js, TypeScript, JavaScript, MongoDB, Apache Kafka, ClickHouse, Elasticsearch, Docker, Kubernetes•
Уровень дохода не указан | 2+ годаFullStack Developer
•
Node.js, Vue, GraphQL, Jest, Redis, ClickHouse, PostgreSQL, Docker, Grafana•
от 200 000 ₽ | 3+ годаPlease open Telegram to view this post
VIEW IN TELEGRAM
👎6🤡1
JavaScript и Node.js имеют множество библиотек тестирования и утверждений, таких как Jest, Jasmine, Qunit и Mocha. В этой статье мы рассмотрим, как использовать Mocha для тестирования, Chai для утверждений и Sinon для моков, шпионов и стабов.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Создайте HTTP-сервер на Node.js, который по запросу возвращает случайную цитату из заранее заданного списка.
Ожидаемое поведение:
•
Сервер запускается на порту 3000.•
При GET-запросе на /quote сервер возвращает JSON с случайной цитатой.•
При запросе на другой путь возвращается сообщение об ошибке.Решение задачи
const http = require('http');
const quotes = [
"The only limit to our realization of tomorrow is our doubts of today.",
"Do not watch the clock. Do what it does. Keep going.",
"The future depends on what you do today.",
"Success is not the key to happiness. Happiness is the key to success.",
"Hardships often prepare ordinary people for an extraordinary destiny."
];
const server = http.createServer((req, res) => {
res.setHeader('Content-Type', 'application/json');
if (req.url === '/quote' && req.method === 'GET') {
const randomQuote = quotes[Math.floor(Math.random() * quotes.length)];
res.writeHead(200);
res.end(JSON.stringify({ quote: randomQuote }));
} else {
res.writeHead(404);
res.end(JSON.stringify({ error: 'Invalid endpoint' }));
}
});
server.listen(3000, () => {
console.log('Сервер запущен на https://localhost:3000');
});
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
В статье разобраны распространенные проблемы в коде начинающих разработчиков с конкретными решениями: грамотная инъекция зависимостей, использование Scoped-сервисов, паттерн Generic Repository и создание Stateless-классов.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья рассказывает о создании Vanilla Calendar Pro — датапикера, собравшего 480+ звезд на GitHub. Описывается путь от первого опыта в open source до популярного инструмента, востребованного разработчиками.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Node.js backend разработчик (Middle+/Senior)
•
Node.js, TypeScript, GraphQL, PostgreSQL, WebSockets, Redis•
от 3 000 до 4 500 $ | 3+ годаFullstack-разработчик
•
JavaScript, Node.js, PHP 8, Symfony, MongoDB, Redis, PostgreSQL, GitLab, REST API•
Уровень дохода не указан | 3+ годаSenior Backend Developer (Node.js)
•
Node.js, SQL, Apache Kafka, Redis, CI/CD•
Уровень дохода не указан | 3+ годаPlease open Telegram to view this post
VIEW IN TELEGRAM
• История: работа в чешском Red Hat
• Циничные заметки о карьере в IT от «гейткипера»
• Рецензия на книгу “Изучаем паттерны проектирования JavaScript, 2-е издание”
• Всероссийский рейтинг IT-брендов работодателей 2024
• Моя петиция EB-1A на грин-карту талантов, одобренная с первой попытки
Please open Telegram to view this post
VIEW IN TELEGRAM