这是一个简单的网络刮刀。
HTTP请求由NodeJS发送,并使用HTML响应客户端。控制台立即显示body.toString(),但在浏览器上它会永远加载,当我停止服务器时,它会显示页面。
我在快递中做了类似的事情,它只是有效,但出于某种原因,我不允许使用快递。所以我必须用纯NodeJS编写。
我还尝试在没有HTTP请求的情况下执行此操作,只在if语句中保留了函数response.write和response.end,当我在response.write中放入几个字符串时它很好,但是当我放入minify HTML时在response.write内部,同样的情况发生,加载需要永远,并在我停止服务器时显示页面。
以下是我的代码,感谢任何帮助,提前谢谢。
const url = require("url"),
http = require('http');
const port = 3000;
const requestHandler = (request, response) => {
if (request.url === "/") {
const options = {
"method": "GET",
"hostname": "something.com",
"port": null,
"path": "/",
"headers": {
"content-type": "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
}
};
const req = http.request(options, function (res) {
let chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function () {
let body = Buffer.concat(chunks);
console.log(body.toString());
const html = body.toString();
response.write(html);
response.end();
});
});
req.write("");
req.end();
}
}
const server = http.createServer(requestHandler)
server.listen(port, (err) => {
if (err) {
return console.log('something bad happened', err)
}
console.log(`server is listening on ${port}`)
})