Connexion base de données - récupérer les messages d'erreur
Bonjour,
J'ai une appli React qui fait des requêtes sur une base de données Postgres
Dans mon code, je lance les requêtes avec du code genre :
Code:
1 2 3 4 5 6 7 8 9
| fetch(`monurlderequete`)
.then(response => {
if (response.ok) {
console.log('requête OK');
}
else {
console.log(response);
}
}) |
La réponse est de la forme :
Code:
Response { type: "cors", url: "monurlderequete", redirected: false, status: 500, ok: false, statusText: "Internal Server Error", headers: Headers(2), body: ReadableStream, bodyUsed: false }
Mais on ne peut pas savoir quelle est l'erreur exactement.
Si je regarde le log du backend, il y a beaucoup plus d'infos :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
error: la valeur d'une clé dupliquée rompt la contrainte unique « secteur_nom_key »
at Parser.parseErrorMessage (D:\mypath\node-postgres\node_modules\pg-protocol\dist\parser.js:283:98)
at Parser.handlePacket (D:\mypath\node-postgres\node_modules\pg-protocol\dist\parser.js:122:29)
at Parser.parse (D:\mypath\node-postgres\node_modules\pg-protocol\dist\parser.js:35:38)
at Socket.<anonymous> (D:\mypath\node-postgres\node_modules\pg-protocol\dist\index.js:11:42)
at Socket.emit (node:events:520:28)
at addChunk (node:internal/streams/readable:559:12)
at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
at Readable.push (node:internal/streams/readable:390:5)
at TCP.onStreamRead (node:internal/stream_base_commons:191:23) {
length: 218,
severity: 'ERREUR',
code: '23505',
detail: 'La clé « (nom)=(BZH) » existe déjà.',
hint: undefined,
position: undefined,
internalPosition: undefined,
internalQuery: undefined,
where: undefined,
schema: 'fcu',
table: 'secteur',
column: undefined,
dataType: undefined,
constraint: 'secteur_nom_key',
file: 'nbtinsert.c',
line: '666',
routine: '_bt_check_unique'
} |
D'où ma question : est ce qu'il y a un moyen de ramener les messages du backend dans la réponse renvoyée, pour afficher un message d'erreur dans une boite de dialogue, qui puisse expliquer pourquoi la requête n'a pas marché (dans l'exemple ici duplication de clé)
Merci,
Nico