2017-07-21 1 views
0

onclick La fonction pour un bouton HTML5 est implémentée comme ci-dessous, pour envoyer des données au serveur avec l'API fetch. Mais je veux être en mesure de recevoir des données du corps de la réponse du serveur. Comment puis-je faire:Comment envoyer certaines données du serveur au navigateur avec le corps de réponse de l'API de chargement

function deleteUser(){ 
     let confirmation=confirm('Are you sure?') 
     if(confirmation){ 
       const req=new Request('/users/delete',{ 
         method:'DELETE', 
         body:JSON.stringify({ 
           email:this.getAttribute('data-email'), 
           mySay:'Looks like fetch is awesome' 
         }), 
         headers:new Headers({ 
           'Content-Type':'application/json' 
         }) 
       }) 
       fetch(req).then(res=>{ 
         //How can I receive data by server's response body? 
         console.log(res.body) 
         return res.json() 
       }).then(data=>{ 
         console.log(data) 
       }) 
     }else{ 
       return false 
     } 
} 

Sur le code côté serveur, à savoir NodeJS avec express.js, je le code suivant:

server.delete('/users/delete',(req,res)=>{ 
     console.log(req.body) 
     //Server logs browser request body correctly: 
     //{ email: '[email protected]', mySay: 'Looks like fetch is awesome' } 

     //How can I send back response body from server to browser? 
     //The following method is NOT working: 
     return new Promise((resolve,reject)=>{ 
      res.body=JSON.stringify({ 
       msg:'I recieved your request' 
      }) 
      resolve(res) 
     }) 
}) 

Répondre

2

Pour envoyer res.json() Utilisation de réponse:

res.json({ 
    key: value, 
    key2: value2 
})