Как использовать импорт ES6 в Node.js?

Опубликовано: 26 Июля, 2021

Введение в импорт ES6:

Оператор импорта используется для импорта модулей, которые экспортируются каким-либо другим модулем. Модуль - это файл, содержащий фрагмент повторно используемого кода. Модули импорта находятся в строгом режиме независимо от того, объявлен он или нет.

Синтаксис импорта:

 импортировать имя из 'имя-модуля'

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

  1. Импорт всего модуля:

     импортировать * как имя из 'имя-модуля'
  2. Импортировать экспорт по умолчанию из модуля:

     импортировать имя из 'имя-модуля'
  3. Импорт одного экспорта из модуля:

     импортировать {имя} из "имя-модуля"
  4. Импорт нескольких экспортов из модуля:

     импортировать {nameOne, nameTwo} из 'имя-модуля'
  5. Импорт модуля только для побочных эффектов

     импортировать './module-name'

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

    В Node есть экспериментальная поддержка модулей ES. Чтобы включить их, нам нужно внести некоторые изменения в файл package.json. Перед тем, как следовать инструкциям, убедитесь, что Node установлен. Ниже приведены шаги для достижения того же.

    1. В файле package.json добавьте «тип»: «модуль» . Добавление этого включает модули ES6.

      Файл package.json должен выглядеть так:



      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"
      }
    2. Создайте файл index.js и напишите программу, используя импорт ES6. Например, попробуем импортировать экспресс в файл index.js

      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, набрав в терминале node –experimental-modules index.js.

    Используя модуль esm:

    Другой способ сделать это - создать файл с расширением .mjs . Если мы используем файл с расширением .mjs, нам не нужно добавлять «тип»: «модуль» в файл package.json. Мы можем написать программу напрямую и запустить ее, набрав в терминале node –experimental-modules index.mjs.

    Теперь при использовании файла с расширением .mjs файл package.json будет выглядеть так:

    Javascript




    // 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.

    Javascript




    //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}`);
    })

    Теперь в узле терминального типа –experimental-modules index.mjs . Это запустит файл, и приложение теперь будет работать на PORT 5000.

    Использование модуля esm

    Монтаж

     npm установить esm

    Теперь попробуйте выполнить программу, написанную ранее в файле index.js, набрав в терминале node -r esm index.js.

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

     //server.js
    require = require ("esm") (модуль);
    module.exports = require ("./ index.js");

    Примечание. В файл server.js мы импортируем файл index.js, который содержит фактическую программу, которую необходимо выполнить.

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

    Вывод файлов index.js и index.mjs в приведенном выше методе:

    локальный: 5000

    Преимущества использования импорта вместо require в nodejs:

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