Seu primeiro módulo
Parte da seção Fundamentos de Node.js do Journey de Node.js da Coddy. Lição 7 de 33.
notes.js continua crescendo, e o código que formata uma nota será necessário em mais de um lugar.
Um módulo é um arquivo. export antes de uma função permite que outros arquivos a usem, e import { name } from './file.js' a importa:
// math.js
export function add(a, b) {
return a + b;
}
// app.js
import { add } from './math.js';
console.log(add(2, 3));Sem export, a função fica privada em math.js, e a importação falha. O caminho começa com ./, que significa a mesma pasta, e termina com .js: o Node não deduz a extensão.
Desafio
Fácilnotes.js está ficando longo. Mova o código que transforma uma anotação em uma linha numerada para o próprio arquivo, format.js, para que outros arquivos também possam usá-lo.
- Em
format.js, escreva uma funçãoformatNote(n, text)e exporte-a. Ela retorna o número, um ponto final, um espaço e, em seguida, o texto.formatNote(1, 'Buy milk')retorna'1. Buy milk', eformatNote(3, 'Call Ada')retorna'3. Call Ada'. Ela retorna a linha; não a imprime. - Em
notes.js, importeformatNotede./format.jsno início do arquivo. - No ramo
add, substitua a linha que imprimeAdding: .... Agora ela imprimeAdding:seguido porformatNote(1, text), que é a anotação numerada como 1. Por enquanto, todas as anotações têm o número 1; o número real será definido na próxima lição.
node notes.js add Buy milk imprime:
Adding: 1. Buy milkExperimente: digite add Buy milk na caixa depois de $ node notes.js e pressione Enter. Você verá Adding: 1. Buy milk. Depois, veja o que o Node diz sobre um caminho incorreto: exclua .js da linha de importação em notes.js e execute novamente. O programa para com um erro dizendo que não consegue encontrar o módulo format. Coloque .js de volta antes de pressionar “Verificar”.
Experimente você mesmo
// formatNote(1, 'Buy milk') deve retornar '1. Buy milk'.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos de Node.js
Pratique por conta própria: Playground de Express