Как подключить модуль в Node.js?

«Как подключить модуль в Node.js?» — вопрос из категории Node.js Core, который задают на 26% собеседований Node.js Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Node.js существует две основные системы модулей: CommonJS (стандартная, историческая) и ES Modules (современная). Способ подключения зависит от используемой системы.

1. CommonJS (использует require()): Это классический способ, используемый по умолчанию в файлах с расширением .js или .cjs.

// Подключение встроенного (core) модуля
const fs = require('fs');

// Подключение стороннего модуля из node_modules
const express = require('express');
const { Model } = require('sequelize'); // Деструктуризация

// Подключение локального файла
const myUtility = require('./utils/myUtility');
const config = require('../config'); // Ищет config.js или config/index.js

2. ES Modules (использует import/export): Чтобы использовать ES Modules, нужно либо указать "type": "module" в package.json, либо использовать расширение .mjs для файлов.

// package.json: { "type": "module" }

// Подключение встроенного модуля (может потребовать префикс 'node:')
import fs from 'fs/promises';
import { createServer } from 'node:http';

// Подключение стороннего модуля
import express from 'express';
import { Router } from 'express';

// Подключение локального файла
import { helperFunc } from './lib/helpers.js'; // Расширение .js обязательно

В одном проекте можно использовать обе системы, но для этого требуется аккуратная настройка и понимание различий в разрешении путей.