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
sqlMessage: "Incorrect datetime value: '2019-11-21T23:00:00.000Z' for column 'datetime_contenu' at row 1" sqlState: "22007"
Je souhaiterai que ma date soit renvoyé sous ce format : 2019-11-6 13:54:9.

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
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.html

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
  createNotification(data: Notification) {   
    this.notificationService.createNotification(data);
  }
ajout-notification.component.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');
        }
      );
  }
notification.service.ts

SERVER
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);
    }
}
Notification.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);
        }
    });
});
NotificationController.js