Инструменты пользователя

Инструменты сайта


nodejs:options:how_to_use_an_es6_import_in_node

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'

Импорт может быть выполнен различными способами:

  1. Импорт всего модуля: 
    import * as name from 'module-name'
  2. Импорт экспорт по умолчанию из модуля:
    import name from 'module-name'
  3. Импорт одного экспорта из модуля:
    import { name } from 'module-name'
  4. Импорт нескольких экспортов из модуля:
    import { nameOne , nameTwo } from 'module-name'
  5. Импорт модуля только для побочных эффектов
    import './module-name'

Nodejs не поддерживает прямой импорт ES6. Если мы попытаемся использовать import для импорта модулей непосредственно в nodejs, это выдаст ошибку. Например, если мы попытаемся импортировать модуль express, написав import express from ‘express’ node js выдаст ошибку следующего вида:

  1. модуль имеет экспериментальную поддержку модулей 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"
}
  1. Создайте файл 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}`);
})
  1. Теперь запустите index.js файл, набрав узел –экспериментальные модули index.js в терминале. 

Использование модуля 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. 

Другой способ использовать модуль esm - создать другой файл, скажем server.js который загружает esm перед фактическим применением. В самом server.js файл напишите приведенный ниже код

//server.js
require = require("esm")(module);
module.exports = require("./index.js");
В файле server.js , мы импортируем index.js файл, содержащий фактическую программу, которая должна быть выполнена. 

Теперь в терминале введите узел server.js для выполнения программы

Результат работы index.js и файл index.mjs в приведенном выше методе является:

nodejs/options/how_to_use_an_es6_import_in_node.txt · Последние изменения: 2023/02/23 20:00 — werwolf