-1
Ich lerne Knoten und habe ein Problem. Warum lese ich keine Daten bei meiner POST-Anfrage? Wenn ich meine POST bei HTML, wenn mit req.method POST ist Arbeit, aber emit "Daten" funktioniert nicht. Dies ist Teil meiner html:Warum lese ich keine Daten bei POST
<form method="post" action='./script.js'>
<label for="my-form">Enter phraze</label><input type="text" id='my-form'><br>
<input type="submit">
</form>
let fs = require('fs');
let http = require('http');
let server = http.createServer((req, res) => {
res.setEncoding = 'utf8';
res.writeHead(200, {'Content-type': 'text/html'});
if(req.url == '/'){
reply('./index.html', res)
}
if(req.method == 'POST'){
let body;
req.on('data',
(chunk) => { if(chunk != null) {body += chunk.toString(); res.write(chunk.toString())} })
req.on('end',
() => res.end(body))
}
}).listen(5858);
server.on('error', (err) => { throw err.message });
function reply(path, res){
let streamPage = fs.createReadStream(path, {encoding: 'utf8'});
streamPage.on('readable',
(chunk) => { chunk = streamPage.read(); if(chunk != null) res.write(chunk) });
streamPage.on('end',
(out) => res.end());
streamPage.on('error', (err) => err.message)
}
behoben wie in dir. aber es funktioniert nicht. in meiner Skript-Datei habe ich mich nicht zu meinem Rückruf in 'Daten' –
@ КостяМатюшонок Es ist mein Fehler, sorry. Ihr HTML weiß nichts über das Routing Ihres Node-Servers. Wenn Sie Post-Anfrage über CURL oder Fiddler senden, geben Sie Ihren Rückruf ein. Wenn Sie eine Anfrage über die HTML-Seite senden möchten, ersetzen Sie action = '/' in action = 'http: // localhost: 5858 /' oder verwenden Sie express.js für nützliche Routings und Vorlagen. –
überprüfen Sie Ihre Methode, aber es funktioniert auch nicht (( –