Bonsoir!
Je débute en nodeJs et je dois réaliser une API.
J'ai un fichier JSON qui contient des Nouvelles. Je dois pouvoir renvoyer une nouvelle par Id, insérer une nouvelle, supprimer une nouvelle ou mettre à jour une nouvelle.
Pour l'instant j'ai réussi à faire GetById.
Je bloque sur POST(pour insérer une nouvelle dans mon JSON)
ci-joint le code de mon newsModels :
et newsController :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 'use strict' const fs = require('fs') const path = require('path') //task object constructor var Nouvelle = function(nouvelle) { this.Id_nouvelle = nouvelle.Id_nouvelle; this.Nom_nouvelle = nouvelle.Nom_nouvelle; this.Description = nouvelle.Description; this.Date_generation = nouvelle.Date_generation; }; Nouvelle.postNouvelle = function postNouvelle(newsToAdd, res) { let nouvellePath = path.join(__dirname, '../../data/nouvelles.json') fs.readFile(nouvellePath, (err, data) => { if (err) { res.sendStatus(500) } let nouvelles = JSON.parse(data) let findeNews = nouvelles.find((obj) => obj.Id_nouvelle === newsToAdd.Id_nouvelle) if (!findeNews) { //data[newsToAdd] = JSON.parse(data) fs.writeFile(nouvellePath, JSON.stringify(newsToAdd,null, 4), (error) => { if(error){ res.sendStatus(500) console.log('news added') } }) res.sendStatus(201) } } ) } Nouvelle.getNouvelle = function getNouvelle(Id_nouvelle, callback) { let nouvellePath = path.join(__dirname, '../../data/nouvelles.json') //à modifietr il faut chercher à definir une variable à portée global poura être utilisée dant tous les fichiers fs.readFile(nouvellePath, (err, data) => { if (err) { callback(err) return } let nouvelles = JSON.parse(data) let findeNews = nouvelles.find((obj) => obj.Id_nouvelle === Id_nouvelle) if (findeNews) { console.log(findeNews) callback(null, findeNews) } }) } module.exports = Nouvelle
newsModel.jsnewsController.js
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 'use strict' //let express = require('express') let Nouvelle = require('../Models/newsModel') exports.recuperer_une_nouvelle = function(req, res) { Nouvelle.getNouvelle(req.params.Id_nouvelle, (err, nouvelle) => { if (err) { res.send(err) } res.json(nouvelle.Description) }) } exports.inserer_une_nouvelle = function(req, res) { var newsToAdd = new Nouvelle(req.body); Nouvelle.postNouvelle(newsToAdd, function(err, nouvelle){ if (err) { res.send(err) } else{ res.json(nouvelle) } }) }
voilà à quoi ressemble mon JSON :
Merciii d'avance!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 [ { "Id_nouvelle": "1", "Nom_nouvelle":"météo du jour", "Description": "le jeudi 24 octobre il fait 16°", "Date_generation": "24/10/2019" }, { "Id_nouvelle": "2", "Nom_nouvelle":"Londre ce matin!", "Description": "les 32 morts dans le camion sont de nationnalité chinoise", "Date_generation": "" }, { "Id_nouvelle": "3", "Nom_nouvelle":"Vacances scolaires!", "Description": "Cette année il n'y aura pas de vacances pour les master 2!!!", "Date_generation": "01/09/2019" } ]
Partager