Supprimer une note
Fait partie de la section Les bases de Node.js du Journey Node.js de Coddy. Leçon 15 sur 33.
done 2 doit supprimer la note 2, et les gens saisissent n’importe quoi après done.
Les arguments sont des chaînes : Number('2') vaut 2 et Number('two') vaut NaN. Number.isInteger rejette NaN et 2.5 en un seul test ; vérifie ensuite la plage. Les listes commencent à compter à partir de 1 et les tableaux à partir de 0, donc la note n se trouve à l’index n - 1, et splice(i, 1) la supprime.
// node seat.js 4
const seat = Number(process.argv[2]);
if (!Number.isInteger(seat) || seat < 1 || seat > 30) {
console.error(`No seat ${process.argv[2]}`);
process.exit(1);
}
console.log(`Row ${Math.ceil(seat / 6)}`);Défi
FacileLorsque tu termines une tâche, tu la marques comme terminée et elle disparaît de la liste. Ajoute une commande done qui supprime une note en fonction de son numéro.
- Dans
notes.js, ajoute une commandedone. Le mot aprèsdonecorrespond au numéro de la note, tel quelistl’affiche, donc la note 1 est la première note. Le mot arrive sous forme de chaîne. - Supprime cette note du stockage, puis enregistre les notes dans
notes.json, comme le faitadd. La note 1 se trouve à l’index 0 du tableau. Tu peux placer le code de suppression dansnotes.jsou en faire une méthode dansstore.js. - Affiche
Done:suivi du texte de la note supprimée. Avec les notesBuy milk,Call AdaetWater the plants,node notes.js done 1affiche :Done: Buy milknotes.jsonne contient alors plus queCall AdaetWater the plants.done 3supprimeWater the plants. - Si le mot ne correspond pas au numéro d’une note, ne change rien. Affiche
No notesuivi du mot sur stderr, puis quitte avec le code 1. Cela concerne un mot commeabc,0, un nombre décimal comme2.5, ainsi qu’un nombre supérieur au dernier numéro, comme9lorsqu’il y a trois notes.node notes.js done abcaffiche ceci, en rouge :No note abc
Essaie : tape list dans la zone après $ node notes.js pour voir tes notes et leurs numéros. Tape done 1, puis list à nouveau : la première note a disparu et les autres ont avancé d’un numéro. Tape ensuite done abc : tu vois No note abc en rouge et le code de sortie 1, et list affiche les mêmes notes qu’avant.
Essayez vous-même
// Votre outil de prise de notes commence ici.
import { rmSync } from 'node:fs';
import path from 'node:path';
import { formatNote } from './format.js';
import stats from './legacy/stats.cjs';
import store from './store.js';
const [command, ...words] = process.argv.slice(2);
const text = words.join(' ');
if (command === 'add') {
const n = store.add(text);
console.log(`Saved note ${n}.`);
} else if (command === 'list') {
const owner = process.env.NOTES_OWNER ?? 'you';
console.log(`Notes for ${owner}`);
if (store.notes.length === 0) {
console.log('No notes yet');
}
store.notes.forEach((note, i) => console.log(formatNote(i + 1, note)));
} else if (command === 'where') {
const file = path.join(process.cwd(), 'notes.json');
console.log(file);
console.log(path.basename(file));
} else if (command === 'stats') {
console.log(`${store.notes.length} notes, ${stats.countWords(store.notes)} words`);
} else if (command === 'clear') {
rmSync('notes.json', { force: true });
console.log('Deleted notes.json');
} else {
if (command) {
console.error(`Unknown command: ${command}`);
}
console.error('Usage: node notes.js <command> [words]');
process.exit(1);
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Les bases de Node.js
1Exécuter JavaScript avec Node
Bonjour, NodeLire la commandeArguments de ligne de commandeCommandes5Événements, entrées et packages
Écouter avant d’émettreÉmetteurs d’événementsLire les entrées3Fichiers
Texte JSON et valeursLire un fichierÉcrire du texte JSONÉcrire dans un fichierSupprimer une noteEntraînez-vous par vous-même : Playground Express