Поиск…


Использование простого модуля в node.js

Что такое модуль node.js ( ссылка на статью ):

Модуль инкапсулирует связанный код в единую единицу кода. При создании модуля это можно интерпретировать как перемещение всех связанных функций в файл.

Теперь давайте посмотрим пример. Представьте, что все файлы находятся в одном каталоге:

Файл: printer.js

"use strict";

exports.printHelloWorld = function (){
    console.log("Hello World!!!");
}

Другой способ использования модулей:

Файл animals.js

"use strict";

module.exports = {
    lion: function() {
        console.log("ROAARR!!!");
    }

};

Файл: app.js

Запустите этот файл, перейдя в ваш каталог и набрав: node app.js

"use strict";

//require('./path/to/module.js') node which module to load
var printer = require('./printer');
var animals = require('./animals');

printer.printHelloWorld(); //prints "Hello World!!!"
animals.lion(); //prints "ROAARR!!!"

Использование импорта в ES6

Node.js построен против современных версий V8. Поддерживая новейшие версии этого движка, мы гарантируем, что новые функции из спецификации JavaScript ECMA-262 будут доведены до разработчиков Node.js своевременно, а также продолжительные улучшения производительности и стабильности.

Все функции ECMAScript 2015 (ES6) разделены на три группы для доставки, постановки и выполнения функций:

Все функции доставки, которые V8 считает стабильными, включаются по умолчанию на Node.js и НЕ требуют какого-либо флага времени выполнения. Поэтапные функции, которые являются почти завершенными функциями, которые не считают стабильными командой V8, требуют флага времени выполнения: --harmony. В процессе выполнения функции могут быть активированы индивидуально по их соответствующему флагом гармонии, хотя это крайне не рекомендуется, если только для целей тестирования. Примечание. Эти флаги отображаются V8 и могут изменяться без уведомления об устаревании.

В настоящее время ES6 поддерживает операторы импорта изначально см здесь

Поэтому, если у нас есть файл fun.js ...

export default function say(what){
  console.log(what);
}

export function sayLoud(whoot) {
  say(whoot.toUpperCase());
}

... и если был еще один файл с именем app.js где мы хотим использовать наши ранее определенные функции, существует три способа их импорта.

Импорт по умолчанию

import say from './fun';
say('Hello Stack Overflow!!');  // Output: Hello Stack Overflow!!

Импортирует функцию say() поскольку она помечена как экспорт по умолчанию в исходный файл ( export default … )

Именованный импорт

import { sayLoud } from './fun';
sayLoud('JS modules are awesome.'); // Output: JS MODULES ARE AWESOME.

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

Вложенный импорт

import * as i from './fun';
i.say('What?'); // Output: What?
i.sayLoud('Whoot!'); // Output: WHOOT!

Если мы хотим иметь все это, это путь. Используя синтаксис * as i мы имеем оператор import предоставляет нам объект i который содержит весь экспорт нашего модуля fun как соответствующие им свойства.

пути

Имейте в виду, что вы должны явно указывать пути импорта как относительные пути, даже если импортируемый файл находится в том же каталоге, что и файл, в который вы импортируете, используя ./ . Импорт из неподписанных дорожек

import express from 'express';

будут просматриваться в локальных и глобальных папках node_modules и будут node_modules ошибку, если не найдены соответствующие модули.

Экспорт с использованием синтаксиса ES6

Это эквивалентно другому примеру, но вместо этого используется ES6.

export function printHelloWorld() {
  console.log("Hello World!!!");
}


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow