节点js response.write(平均大小为html)需要永久加载页面

时间:2017-04-21 15:59:50

标签: javascript node.js http

这是一个简单的网络刮刀。

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}`)
    })

0 个答案:

没有答案