Bonjour à tous,
Je suis débutant en Javascript et je suis en train de développer une appli utilisant node.js (12.13.0) côté serveur et Angular côté client. J'utilise Angular CLI (8.3.14) et Express(6.12.0).
J'ai un formulaire HTML dans lequel je renseigne une date, sauf que celle-ci est renvoyée en BDD en ISO 8601 2019-11-21T23:00:00.000Z.
Ce qui me donne cette erreur
Je souhaiterai que ma date soit renvoyé sous ce format : 2019-11-6 13:54:9.sqlMessage: "Incorrect datetime value: '2019-11-21T23:00:00.000Z' for column 'datetime_contenu' at row 1" sqlState: "22007"
J'ai essayé plusieurs méthodes :
- un pipe côté client dans mon HTML en utilisant ngModelChange,
- un Date.parse() dans mon component
- ou encore un DATE_FORMAT côté serveur dans les values de ma méthode createnotification
Mais rien n'y fait cela pose toujours un problème soit syntaxique soit de requête.
Auriez vous une méthode pour faire cela pleaaaase ?
Je vous fournit différents extraits de mon code afin que vous y voyez plus clair.
CLIENT
ajout-notification.component.html
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <div class="col-md-6 form-group"> <label class="control-label">Date du contenu</label> <div class="col-md-12 no-padding"> <mat-form-field> <input name="datetime_contenu" id="datetime_contenu" #datetime_contenu="ngModel" matInput [matDatepicker]="myDatePickerb" [(ngModel)]="notifications.datetime_contenu"> <mat-datepicker-toggle [for]="myDatePickerb" matSuffix></mat-datepicker-toggle> <mat-datepicker #myDatePickerb></mat-datepicker> </mat-form-field> </div> </div>
ajout-notification.component.ts
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 createNotification(data: Notification) { this.notificationService.createNotification(data); }
notification.service.ts
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 createNotification(data) { this.http.post(`${this.url}/notifications`, data) .subscribe( res => { console.log(res); this.toastr.success('Votre notification a été créée avec succès.', 'Success'); this.router.navigateByUrl('/notification'); }, err => { console.log('Erreur de création notification:' , err); this.toastr.error(err.message, 'Erreur de création notification'); } ); }
SERVER
Notification.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 createnotification: function (Notification, callback) { return connection.query('Insert into newapp_notifications(title, body, data, datetime_creation, datetime_envoi, datetime_contenu, type_destinataire, type_notification, uid_auteur, name_auteur, uid_destinataire, statut_envoi, statut_lecture) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', [Notification.title, Notification.body, Notification.data, Notification.datetime_creation, Notification.datetime_envoi, Notification.datetime_contenu, Notification.type_destinataire, Notification.type_notification, Notification.uid_auteur, Notification.name_auteur, Notification.uid_destinataire, Notification.statut_envoi, Notification.statut_lecture], callback); } }
NotificationController.js
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 router.post('/', function (req, res) { Notification.createnotification(req.body,function(err,count){ if(err) { res.status(400).json(err); res.end('La méthode create ne fonctionne pas') } else{ res.json(req.body); } }); });
Partager