我使用 http 来接收来自 nodejs 的请求。当我在控制台中打印时,它将显示从 c# 发送的确切文本。
问题:现在的问题是先看这个
http. Createserver(fuction(req,res){
var text = "";
req.on("data",funtion(data) {
if(data! = null) {
text = data.ToString(utf8);
Console.log(text) ;
}
res.writeHead("Content":"html") ;
res.write("<html> <body> <p>"+text+"</html>") ;
res.end()
}
}).listen(3535);
注意它只是引用不完全。
问题是在从 c# 发送请求之前响应结束
但是当我们在控制台打印时它总是处于活动状态。
有什么解决办法吗?
答案 0 :(得分:0)
响应结束,因为您将响应发送到 on("data") 块内的客户端 而不是在“结束”事件中发送响应 还要设置内容类型而不是
res.writeHead("Content":"html") ;
你需要使用
res.setHeader('Content-Type', 'text/html');
完整的工作服务器如下
const http = require('http');
http.createServer((req, res) => {
const { headers, method, url } = req;
let bodyChunks = [];
var text = "";
req.on('error', (err) => {
console.error(err);
}).on('data', (chunk) => {
bodyChunks.push(chunk);
}).on('end', () => {
text = Buffer.concat(bodyChunks).toString();
res.setHeader('Content-Type', 'text/html');
res.write("<html> <body> <p>"+text+"</html>") ;
res.end()
});
}).listen(3535);