javascript - 全局范围 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
如果
const stream = createReadStream("./big.txt", "utf-8");
在回调之外,则服务器连接无法正常工作。如果我把
const stream = createReadStream("./big.txt", "utf-8");
回调放在里面,那么一切正常。似乎
stream.pipe(res)
做了什么res.end()
。但我不明白如何pipe(res)
才能完成这项工作。
解决方案
推荐阅读
- php - 如果在laravel中满足条件,如何跳过数据行
- assembly - nasm "尝试在 bss 部分初始化内存"
- sql - 无法组合 GROUP BY、ORDER BY 和 UNION
- javascript - 在Js中使用split函数计算字符串中选定字母的总数
- delphi - Delphi 打印使用文件重写功能
- node.js - 使用 Sequelize 在 NodeJS 中实现异步的问题
- ios - ios发布构建时不显示React Native BareWorkflow图像
- unity3d - 我在 Unity 中设置了 Obstacle Avoidance - NavMesh 的半径,但单位拒绝移动?
- kotlin - 为什么没有kotlin-stdlib-jdk11?
- python - 在数据帧上获取 max agg 后,我无法使用它加载到 pandas sql insert