首页 > 解决方案 > 全局范围 createReadStream 不适用于回调

问题描述

const http = require("http");
const { createReadStream } = require("fs");
const stream = createReadStream("./big.txt", "utf-8");

const server = http.createServer((req, res) => {
  console.log("hehehe");
//   const stream = createReadStream("./big.txt", "utf-8");
  stream.on("open", () => {
    console.log("hohoho");
    stream.pipe(res);
  });
});

server.listen(5000);

[代码结果]

hehehe
  1. 如果const stream = createReadStream("./big.txt", "utf-8");在回调之外,则服务器连接无法正常工作。

  2. 如果我把const stream = createReadStream("./big.txt", "utf-8");回调放在里面,那么一切正常。

  3. 似乎stream.pipe(res)做了什么res.end()。但我不明白如何pipe(res)才能完成这项工作。

标签: javascriptnode.jsstreamfs

解决方案


推荐阅读