2017-09-22 3 views
0

Il s'agit évidemment d'un problème connu, mais je n'ai aucune idée de la façon de le réparer sur mon projet MEAN. il semble que plusieurs demandes sont envoyées. J'ai essayé toutes les solutions que j'ai pu trouver (anciennes ou plus récentes). infructueux jusqu'à présent.Mongojs Impossible de définir les en-têtes après leur envoi

res.end() res.redirect ('/')

rien ne semble faire l'affaire.

error in console

error in the terminal console

ceci est mon code où je gère mes méthodes HTTP

//delete 
router.delete('/task/:id', function(req, res, next) { 
    let post = mongojs.ObjectId(req.params.id) 
    db.tasks.remove({_id: mongojs.ObjectId(req.params.id)}, function(err, task){ 
     res.status(200).res.json(task) 
     return res.end() 

     console.log('SERVER - post ' + req.body.title + ' successfully deleted') 

     if (err) { 
      res.send('error message ' + err) 
     }  
    }) 
}) 

//update 
router.put('/task/:id', function(req, res, next) { 
    var task = req.body 
    var updateTask = {} 

    updateTask.isDone = task.isDone 
    updateTask.title = task.title 

    if(!updateTask) { 
     res.status(404).send({ 
      "error": "bad request" 
     }) 

    } else { 
     db.tasks.update({_id: mongojs.ObjectId(req.params.id)}, updateTask, {}, function(err, task){ 
      res.status(200).res.json(task) 
      return res.end() 

      if (err) { 
       res.send('error message ' + err) 
      } 
     }) 
    } 


}) 

c'est une application angulaire, voici donc mon dossier de service. bien que, ce n'est pas un problème lié au client

public deletePost(post: Post) { 
    console.log('SERVICE - post ' + post._id + ' successfully deleted') 
    return this.http.delete('http://localhost:1234/api/task/' + post._id) 
     .map(res => res.json) 

    } 

    public updatePost(postId : string, newText:string) { 

    } 

    public addPost(newPost: Post) { 
    var headers = new Headers();//?? 
    headers.append('Content-Type', 'application/json'); 
    console.log('successfully added (service)' + newPost.title) 
    let body = JSON.stringify({title: newPost.title, isDone:false}); 
    console.log(body) 


    return this.http.post('http://localhost:1234/api/task', JSON.parse(body),{headers}) 
    .map(res => res.json()); 
    } 
+0

résolu! J'envoyais en effet la demande deux fois dans le client et dans le serveur. – SandyL

+0

remplacé: res.status (200) .res.json (tâche) return res.end() – SandyL

Répondre

0

résolu! J'envoyais en effet la requête deux fois dans le client et dans le serveur.

dans mes post.service.ts (client), j'étais déjà l'envoi d'une réponse avec: res => res.json()

remplacé: res.status (200). res.json (tâche) de res.end de retour()

avec seulement: res.status (200)