2017-06-15 2 views
0

Je travaille actuellement sur un projet qui utilise Javascript avec Node.js, Express, SuperAgent et KnexJS (framework de base de données pour Sqlite3). Mon problème est le suivant:La base de données est mise à jour avec succès, mais l'API renvoie l'erreur 500

Quand je soumets des données mises à jour via mon itinéraire API en utilisant la méthode PUT, ma base de données est mise à jour avec succès, mais mes console revient cette erreur:

PUT http://localhost:3000/user/contracts/ 500 (unknown) 
Error: unknown 
    at Request.<anonymous> (client.js:423) 
    at Request.Emitter.emit (index.js:133) 
    at XMLHttpRequest.xhr.onreadystatechange (client.js:735) 

Voici quelques extraits de mon API, Routes et code DB.

api.js

const request = require('superagent') 

const updateUserContract = (callback, id, contractData) => { 
    request 
    .put('http://localhost:3000/user/contracts/' + id) 
    .set('Content-Type', 'application/json') 
    .send(contractData) 
    .end(function (err, res) { 
     if (err) { 
     callback(err) 
     } else { 
     callback(null, "Status: 200") 
     } 
    }) 
} 

module.exports = { updateUserContract } 

routes.js

router.put('/contracts/:id', function (req, res) { 
    var id = req.params.id 
    var signatureUrl = req.body.signature_url 
    db.signContract(id, signatureUrl).then((result) => { 
    res.sendStatus(result) 
    }) 
    .catch((err) => { 
    res.status(500).send(err) 
    }) 
}) 

db.js

function signContract (id, signatureUrl) { 
    return knex('contracts').where('id', id) 
    .update({ signature_url: signatureUrl }).into('contracts') 
} 
+0

Vérifiez le journal de votre serveur pour la raison de l'erreur 500. – Barmar

+0

@Barmar Je viens d'avoir un chèque alors. Désolé encore nouveau à ceci dans une certaine mesure. Je n'ai rien vu à propos des erreurs. C'est ce que j'ai récupéré. 'exprimer: routeur expéditeur PUT/user/contrats/21 + 3s express: requête de routeur:/user/contrats/21 + 2 ms express: routeur expressInit:/user/contrats/21 + 0 ms express: routeur jsonParser:/user/contracts/21 + 0ms exprès: routeur serveStatic:/utilisateur/contrats/21 + 0ms exprès: routeur garniture préfixe (/ user) d'url/user/contracts/21 + 0ms exprès: routeur routeur/utilisateur:/user/contracts/21 + 0ms exprès: routeur envoyant PUT/contrats/21 + 0ms' –

+0

dénudez les ".into ('contrats')", vous l'avez déjà fourni dans knex ("contrats") – Sombriks

Répondre

0

a répondu par @Sombriks. "à propos de votre erreur, vous envoyez le statut sql comme s'il s'agissait d'un statut http.Ma meilleure estimation est, il est" promu "à une erreur 500. essayez simplement req.send (" OK "), il délivrera le statut 200 par défaut".