Lendo um arquivo
Parte da seção Fundamentos de Node.js do Journey de Node.js da Coddy. Lição 12 de 33.
Cada execução começa com as mesmas três notas, porque elas ficam apenas na memória.
readFileSync(path, 'utf8') de node:fs lê um arquivo como uma string. Um arquivo de notas contém JSON, um formato de texto para dados escritos como arrays e objetos JavaScript, e JSON.parse transforma esse texto em um array. A leitura de um arquivo que não está lá gera um erro ENOENT, então verifique primeiro com existsSync. O exemplo usa condition ? a : b, que retorna a quando a condição é verdadeira e b quando é falsa.
import { existsSync, readFileSync } from 'node:fs';
const scores = existsSync('scores.json')
? JSON.parse(readFileSync('scores.json', 'utf8'))
: [];
console.log(scores.length);Sem 'utf8', você recebe um Buffer, os bytes brutos do arquivo, em vez de uma string.
Desafio
FácilEsta etapa abre o projeto preparado do curso para a ferramenta de linha de comando de anotações, em vez dos arquivos do seu projeto de CommonJS Modules (incluindo legacy/stats.cjs). Seu trabalho anterior permanece na própria lição. Leia os arquivos fornecidos antes de editar store.js. Esta cópia contém todos os comandos até agora, além de um novo comando clear.
No momento, toda execução começa com as mesmas três anotações escritas em store.js. Em vez disso, suas anotações devem vir de um arquivo: notes.json, que você pode abrir em Files.
- Em
store.js, substitua a lista fixa de três anotações.notesda store deve conter o array salvo emnotes.json: leia o arquivo como texto e, em seguida, transforme o texto JSON em um array. - Se
notes.jsonnão existir, a store começa com um array vazio em vez de parar com um erro. Verifique se o arquivo existe antes de lê-lo.
notes.json começa com duas anotações, então node notes.js list exibe:
Notes for you
1. Buy milk
2. Call AdaSem notes.json, exibe:
Notes for you
No notes yetVocê altera apenas store.js. notes.js já exibe No notes yet quando a store está vazia.
Experimente: digite list na caixa após $ node notes.js e pressione Enter. Você verá as duas anotações do arquivo. Em seguida, digite clear. Esse comando já está em notes.js: ele exclui notes.json e exibe Deleted notes.json. Digite list novamente: você verá No notes yet. Antes de pressionar “Verificar”, pressione Reset files para restaurar notes.json, porque as verificações precisam dele.
Experimente você mesmo
// Carregue as notas de notes.json em vez desta lista.
const store = {
notes: ['Buy milk', 'Call Ada', 'Water the plants'],
add(text) {
this.notes.push(text);
return this.notes.length;
},
};
export default store;
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
1Executando JavaScript no Node
Olá, NodeLendo o comandoArgumentos da linha de comandoComandosPratique por conta própria: Playground de Express