Cześć,
Przygotowałem obsługę błędów po stronie serwera Node.js i chce wyświetlać wyniki po stronie klienta wykorzystując plik XML :
const builder = require('xmlbuilder')
const doc = builder.create('error')
const fs = require('fs')
const paths = require('./paths')
// Creating XML with errors
module.exports.show = function (JobID, IdOrder, serverError, src) {
console.log(JobID, IdOrder, serverError, src)
if (serverError > 100) {
switch (serverError) {
case 101:
serverError = "Błąd programu : zły parametr"
break
case 102:
serverError = "Błąd programu : złe polecenie"
}
} else {
serverError = "Nieznany błąd"
}
doc.ele('errors')
.att('src', src)
.txt(serverError)
.end({ pretty: true })
});
console.log(doc.toString())
const xmlPath = paths.files(IdOrder, JobID, "reportXML")
fs.writeFileSync(xmlPath, doc.toString())
}
PLIK XML:
<error><errors src="files">Błąd programu : złe polecenie.</errors></error>
W zasadzie wszystko działa ale problem pojawia się w momencie ponownego wywołania powyższej funkcji bo wpis jest dodawany a nie zastępowany. Nie to jest najlepsze. Przed wywołaniem funkcji usuwam plik XML który wcześniej utworzyłem (fs.unlink
), odświeżam stronę klienta ale nie restartuję serwera a wpisy dalej się dodają. np:
<error><errors src="files">Błąd programu : złe polecenie.</errors></error>
<error><errors src="files">Błąd programu : zły parametr</errors></error>
Czegoś tutaj nie rozumiem, jak to działa? Jak mam wyczyścić poprzedni wpis bez restartowania serwera?
Z góry dzięki za pomoc.