/ / Header können nach dem Senden nicht mehr gesetzt werden. beim zweiten Aufruf der REST-API mit Node und express - node.js, express

Header können nach dem Senden nicht festgelegt werden. Beim zweiten Aufruf der REST-API mit Node und express - node.js, express

Beim Ausführen eines RESTFUL-API-Aufrufs, der mit Node und Express erstellt wurde, wird der Fehler angezeigt.

Hinweis: Beim ersten Aufruf erhielt ich wie erwartet eine JSON-Antwort. Beim Versuch, das 2. Mal zu treffen, habe ich diesen FEHLER bekommen.

  http.js:704
throw new Error("Can"t set headers after they are sent.");
^
Error: Can"t set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (http.js:704:11)
at ServerResponse.res.setHeader (/Users/rain/node-js-sample/node_modules/express/node_modules/connect/lib/patch.js:62:20)
at ServerResponse.res.header (/Users/rain/node-js-sample/node_modules/express/lib/response.js:280:8)
at ServerResponse.res.json (/Users/rain/node-js-sample/node_modules/express/lib/response.js:135:8)
at EventEmitter.<anonymous> (/Users/rain/node-js-sample/web.js:82:11)
at EventEmitter.emit (events.js:117:20)

Server-Code,

app.get("/service/:id/:startDate/:endDate", function(req, res) {
if(req.params.id.length <= 0 || req.params.startDate.length <= 0 || req.params.endDate.length <= 0) {
res.statusCode = 404;
res.send("Error 404: Invalid start date or end date provided");
} else {
rest.get("http://localhost:8080/service/" + req.params.chartId  +
"/" + req.params.startDate +
"/" + req.params.endDate).on("complete", function(data, response) {
console.log(data);
res.json(data);
});
}
});

Antworten:

1 für die Antwort № 1

Ich habe eine Problemumgehung gefunden. Nach der Konvertierung der JSON-Antwort in einen String. Es funktionierte.

res.send(JSON.stringify(data));