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')
}
Vérifiez le journal de votre serveur pour la raison de l'erreur 500. – Barmar
@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' –
dénudez les ".into ('contrats')", vous l'avez déjà fourni dans knex ("contrats") – Sombriks