T'as deux moitiés d'appli. Le front : la to-do list de l'étape 4 du parcours frontend, qui range ses tâches dans localStorage (donc seulement dans ton navigateur). Le back : api-taches, qui range des tâches { id, text, done } dans une vraie base. Mêmes noms de champs, c'était voulu. Dans cette étape, on les branche ensemble.
Depuis l'étape 2, ton serveur sert tout ce qui est dans public/ grâce à express.static("public"). Remplace l'ancien public/index.html par les 3 fichiers de ta to-do :
api-taches/
├── package.json
├── server.js # express.static("public") est déjà là depuis l'étape 2
├── db.js
├── routes/
│ └── tasks.js
├── requests.http
├── data.db
└── public/
├── index.html # la to-do de l'étape 4 (remplace l'ancien)
├── style.css
└── script.js<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Ma to-do list</title>
<link rel="stylesheet" href="style.css">
<script src="script.js" defer></script>
</head>
<body>
<main>
<h1>À faire</h1>
<form id="todo-form">
<label for="todo-input">Nouvelle tâche</label>
<input id="todo-input" type="text" placeholder="Ex : finir la mission 6" autocomplete="off">
<button type="submit">Ajouter</button>
</form>
<p id="todo-error" class="error" hidden></p>
<ul id="todo-list"></ul>
</main>
</body>
</html>.done {
text-decoration: line-through;
opacity: 0.6;
}
.error {
color: crimson;
}Pour public/script.js, copie pour l'instant celui de ta to-do (la version avec localStorage de la mission 6). Puis lance le serveur et ouvre http://localhost:3000, pas Live Server :
# Dans le dossier api-taches
$ npm run devexpress.static("public"): quand le navigateur demande/, Express renvoiepublic/index.html. Puis/style.csset/script.js, que la page réclame à son tour.- La page et l'API ont maintenant la même adresse :
localhost:3000. C'est ce qui va tout simplifier (on verra pourquoi à la mission 6). - Les tâches que t'avais avec Live Server n'apparaissent pas :
localStorageest rangé par adresse de site, etlocalhost:3000en est une nouvelle. Pas grave, on le jette juste après.
Tu vois {"error":"Route introuvable"} au lieu de la page ? Soit tes fichiers ne sont pas dans public/, soit t'as lancé le serveur depuis un autre dossier : "public" est cherché à partir de l'endroit où tu tapes npm run dev. Place-toi dans api-taches.
$ npm run dev
> api-taches@1.0.0 dev
> node --watch server.js
Serveur lancé sur http://localhost:3000
[14:32:05] GET /
[14:32:05] GET /style.css
[14:32:05] GET /script.jsSur http://localhost:3000, ta to-do s'affiche. Ton logger montre que c'est bien Express qui a envoyé les 3 fichiers (les heures changent chez toi).