====== How to use an ES6 import in Node.js? ====== **Введение в модульность ES6: ** The import statement is used to **import** modules that are exported by some other module. A module is a file that contains a piece of reusable code. The import modules are in strict mode whether it is declared or not. Инструкция import используется для **импорта** модулей, которые экспортируются каким-либо другим модулем. Модуль - это файл, содержащий фрагмент повторно используемого кода. Модули находятся в "строгом режиме", независимо от того, объявлен он или нет. **Синтаксис import:** import name from 'module-name' **Импорт может быть выполнен различными способами:** - Импорт всего модуля:  import * as name from 'module-name' - Импорт экспорт по умолчанию из модуля: import name from 'module-name' - Импорт одного экспорта из модуля: import { name } from 'module-name' - Импорт нескольких экспортов из модуля: import { nameOne , nameTwo } from 'module-name' - Импорт модуля только для побочных эффектов import './module-name' Nodejs не поддерживает прямой импорт ES6. Если мы попытаемся использовать import для импорта модулей непосредственно в nodejs, это выдаст ошибку. Например, если мы попытаемся импортировать модуль express, написав **import express from ‘express’** node js выдаст ошибку следующего вида: {{ :nodejs:options:screenshot207.png |}} - модуль имеет экспериментальную поддержку модулей ES. Чтобы включить их, нам нужно внести некоторые изменения в файл package.json. Прежде чем следовать инструкциям, убедитесь, что узел установлен. Ниже приведены шаги для достижения того же самого. //package.json {   "name": "index",   "version": "1.0.0",   "description": "",   "main": "index.js",   "type": "module",   "scripts": {     "test": "echo \"Error: no test specified\" && exit 1"   },   "keywords": [],   "author": "",   "license": "ISC" } - Создайте файл index.js и напишите программу, используя импорт ES6. Например, давайте попробуем импортировать express в index.js файл //index.js    import express from 'express';    const app = express();    app.get('/',(req,res) => {     res.send('GeeksforGeeks'); })    const PORT = 5000;    app.listen(PORT,() => {     console.log(`Running on PORT ${PORT}`); }) - Теперь запустите index.js файл, набрав **узел --экспериментальные модули index.js ** в терминале.  {{ :nodejs:options:screenshot185.png |}} **Использование модуля esm:** Другой способ сделать это - создать файл с расширением **.mjs**. Если мы используем файл с расширением .mjs, то нам не нужно добавлять ** “type”: “module”** в файл package.json. Мы можем напрямую написать программу и выполнить ее, набрав **node --experimental-modules index.mjs** в терминале. Теперь, при использовании файла с расширением .mjs, файл package.json будет выглядеть следующим образом: // package.json when using .mjs file {   "name": "index",   "version": "1.0.0",   "description": "",   "main": "index.js",   "scripts": {     "test": "echo \"Error: no test specified\" && exit 1"   },   "keywords": [],   "author": "",   "license": "ISC" } Создайте файл index.mjs и напишите программу, используя импорт ES6. //index.mjs    import express from 'express';    const app = express();    app.get('/',(req,res) => {     res.send('GeeksforGeeks'); })    const PORT = 5000;    app.listen(PORT,() => {     console.log(`Running on PORT ${PORT}`); }) Теперь в терминале введите **node --experimental-modules index.mjs** . Это приведет к запуску файла, и приложение теперь будет запущено на порту 5000. **Использование модуля esm** Установка npm install esm Now try executing the program written in the index.js file earlier by typing **node -r esm index.js** in the terminal.  {{ :nodejs:options:screenshot188.png |}} Другой способ использовать модуль **esm** - создать другой файл, скажем server.js который загружает esm перед фактическим применением. В самом server.js файл напишите приведенный ниже код //server.js require = require("esm")(module); module.exports = require("./index.js"); В файле **server.js **, мы импортируем index.js файл, содержащий фактическую программу, которая должна быть выполнена.  Теперь в терминале введите **узел server.js ** для выполнения программы {{ :nodejs:options:screenshot194.png |}} Результат работы **index.js ** и **файл index.mjs** в приведенном выше методе является: {{ :nodejs:options:screenshot196.png |}}