Ich habe diese Funktion:Typeerror: res.Send ist keine Funktion
app.get('/counter', function (req, res) {
console.log('/counter Request');
var counter = 0;
fs.readFile(COUNTER_FILE_NAME, function(err, data) {
counter = data;
});
console.log('Read Counter: ' + counter);
counter = counter + 1;
// delete old file
fs.unlink(COUNTER_FILE_NAME, function (err) {
if (err) console.log('Cant chagne old counter file');
});
fs.appendFile(COUNTER_FILE_NAME, counter, function (err) {
if (err) if (err) console.log('Cant create new counter file');
});
console.log('Change Counter To: ' + counter);
res.status(200);
res.writeHead('content-type','text/plain')
res.Send(counter);
})
aus unbekannten Grund, warum ich die folgende Fehlermeldung erhalten:
TypeError: res.Send is not a function
ich auf diesem Posten sah: https://stackoverflow.com/questions/44176021/nodejs-res-send-is-not-a-function
und es sieht wie andere Bugs aus.
Wie kann ich es beheben?
Es gibt andere Dinge falsch mit diesem Code. Sie müssen warten, bis 'fs.readFile()' fertig ist, bevor Sie fortfahren, den 'counter' Wert zu verwenden. Sie müssen warten, bis 'fs.unlink()' fertig ist, bevor Sie 'fs.appendFile()' aufrufen, und Sie senden Ihre Antwort, bevor eine der beiden Aufgaben erledigt ist. Dieser Code zeigt ein völliges Unverständnis der asynchronen Operationen in node.js und wird nicht korrekt funktionieren. Unklar ist auch, dass 'counter' in Ihrer Datei eine Zeichenkette ist. In diesem Fall wird' counter + 1' wahrscheinlich nicht das tun, was Sie wollen. – jfriend00
@ jfriend00 ist korrekt, der TypeError ist die geringste Ihrer Sorgen. Ihre 'readFile',' unlink', 'appendFile' werden alle ziemlich parallel ausgeführt. Willkommen in der Welt der asynchronen Programmierung. – Keith
Und was ist das? 'If (err) if (err)'? – jfriend00