Модули CommonJS
Часть раздела Основы Node.js путешествия по Node.js на Coddy. Урок 9 из 24.
Большая часть кода Node, который вы будете встречать в пакетах npm и старых руководствах, использует другую систему модулей.
CommonJS экспортирует с помощью module.exports и импортирует с помощью require. Node по-прежнему выполняет такой код в файлах с расширением .cjs, а при импорте такого файла с помощью import вы получаете объект module.exports в качестве значения по умолчанию:
// greet.cjs
function hello(name) {
return 'Hello, ' + name;
}
module.exports = { hello };
// app.js
import greet from './greet.cjs';
console.log(greet.hello('Ada'));Изначально exports — это тот же объект, что и module.exports. exports.hello = hello добавляет свойство к нему; exports = { hello } заменяет переменную, и импортирующий код получает пустой объект.
Задание
Легко- Заверши
countWords(notes)вlegacy/stats.cjs: посчитай, сколько слов содержат все заметки вместе. - Импортируй эту функцию в
notes.jsс помощьюimport stats from './legacy/stats.cjs'. - Команда
statsвыводит3 notes, 7 words.
Запусти node notes.js stats. Затем добавь заметку с помощью команды add и снова запусти stats: результат по-прежнему 3, так как пока ничего не сохраняется.
Попробуйте сами
// Старый модуль, написанный в стиле CommonJS.
function countWords(notes) {
// Верни общее количество слов во всех заметках.
return 0;
}
module.exports = { countWords };
Все уроки раздела Основы Node.js
1Запуск JavaScript в Node
Знакомство с NodeАргументы командной строкиКоманды