Moduły CommonJS
Część sekcji Podstawy Node.js ścieżki Node.js w Coddy. Lekcja 10 z 33.
Wiele kodu Node, który będziesz czytać w pakietach npm i starszych samouczkach, korzysta z innego systemu modułów.
CommonJS eksportuje za pomocą module.exports i importuje za pomocą require. Plik z rozszerzeniem .cjs jest zawsze plikiem CommonJS, niezależnie od tego, z czego korzysta reszta projektu, a import takiego pliku udostępnia obiekt module.exports jako domyślny:
// greet.cjs
function hello(name) {
return 'Hello, ' + name;
}
module.exports = { hello };
// app.js
import greet from './greet.cjs';
console.log(greet.hello('Ada'));exports początkowo jest tym samym obiektem co module.exports. exports.hello = hello dodaje do tego obiektu; exports = { hello } zastępuje zmienną, a importer otrzymuje pusty obiekt.
Wyzwanie
ŁatwyStarszy plik legacy/stats.cjs jest napisany w stylu CommonJS, z użyciem module.exports. Użyj go w pliku notes.js, aby dodać polecenie stats.
- W pliku
legacy/stats.cjsdokończ funkcjęcountWords(notes). Otrzymuje ona tablicę notatek i zwraca łączną liczbę zawartych w nich słów, zliczonych we wszystkich notatkach. Słowa są oddzielone spacjami. Dla trzech początkowych notatekBuy milk,Call AdaiWater the plantszwraca7. Dla pustej tablicy zwraca0. - W pliku
notes.jszaimportuj plik za pomocąimport stats from './legacy/stats.cjs'. To plik CommonJS, więcstatsjest obiektemmodule.exports, a funkcją jeststats.countWords. - Dodaj polecenie
statsdo łańcucha, przed końcowymelse. Wyświetla ono jeden wiersz: liczbę notatek, a następnie liczbę słów.Polecenie3 notes, 7 wordswherei pozostałe polecenia nadal działają.
Wypróbuj: wpisz stats w polu po $ node notes.js i naciśnij Enter. Zobaczysz 3 notes, 7 words. Następnie wpisz add Buy bread, a potem ponownie stats: nadal zobaczysz 3 notes, 7 words, ponieważ magazyn zapomina o nowych notatkach po zakończeniu programu.
Spróbuj swoich sił
// Starszy moduł napisany w stylu CommonJS.
function countWords(notes) {
// Zwróć łączną liczbę słów we wszystkich notatkach.
return 0;
}
module.exports = { countWords };
Wszystkie lekcje w sekcji Podstawy Node.js
1Uruchamianie JavaScript w Node
Witaj, NodeOdczytywanie poleceniaArgumenty wiersza poleceńPolecenia5Zdarzenia, dane wejściowe i pakiety
Nasłuchuj przed emisjąEmitery zdarzeńOdczytywanie danych wejściowychPoćwicz samodzielnie: Edytor online Express