Mein REST-Service ist die folgende:NodeJS REST türkischen Charakter, hängen Sockel bis
const
express = require('express'),
app = express();
...
app.get('/turkish-escape/:id', function(req, res) {
console.log("converting turkish special characters:");
console.log("\u011f \u011e \u0131 \u0130 \u00f6 \u00d6 \u00fc \u00dc \u015f \u015e \u00e7 \u00c7");
let char = req.params.id;
.....//DO stuff
Wenn ich versuche, den Dienst im Browser GET erhalte ich keine Fehler: http://localhost:8081/turkish-escape/ğ/
Wenn ich versuche, das Ergebnis mit meinem REST-Client zu bekommen, stoße ich auf einige türkische Sonderzeichen.
Client-Code:
let currentChar = text[i];
let
request = require('request'),
options = {
method: 'GET',
url: 'http://localhost:8081/turkish-escape/' + currentChar + "/"
};
request(options, function(err, res, body) {
if(err) {
throw Error(err);
} else {
body = JSON.parse(body);
console.log(body.convertedChar);
newText += body.convertedChar;
}
});
Wenn ich den Client mit einem 'ü' nenne es funktioniert gut, aber wenn ich es mit einem 'G' nennen stürzt. Das ist der Ruf und Stack-Trace:
./turkishTextConverter.js ğ
/pathtofile/turkishTextConverter.js:25
throw Error(err);
^
Error: Error: socket hang up
at Request._callback (/pathtofile/turkishTextConverter.js:25:15)
at self.callback (/pathtofile/node_modules/request/request.js:188:22)
at emitOne (events.js:96:13)
at Request.emit (events.js:191:7)
at Request.onRequestError (/pathtofile/node_modules/request/request.js:884:8)
at emitOne (events.js:96:13)
at ClientRequest.emit (events.js:191:7)
at Socket.socketOnEnd (_http_client.js:394:9)
at emitNone (events.js:91:20)
at Socket.emit (events.js:188:7)
Wie Sie aus dem Stapel sehen es erreicht nicht einmal die erste console.log Erklärung der REST-Service
Der Stack-Trace scheint vom Client zu stammen, nicht vom Server. – robertklep
Danke, aber warum stürzt mein Klient? Es gibt kein Problem, wenn ich das GET mit meinem Browser mache. Brauche ich eine Art von Zeichen en/decodingß – nufuk
Es könnte sein, dass der Server abstürzt, was den Client zum Absturz bringt. In jedem Fall sollten Sie UTF-8-Codierung verwenden. – robertklep