我很难理解几个 node 中显示的pipe函数.net模块的js示例.

var net = require('net');

var server = net.createServer(function (socket) {
  socket.write('Echo server\r\n');
  socket.pipe(socket);
});

有人能解释一下这是如何工作的,为什么需要它吗?

推荐答案

pipe()函数从可读流中读取可用的数据,并将其写入目标可写流.

文档中的示例是echo服务器,它是一个发送接收内容的服务器.socket对象实现了可读和可写流接口,因此它将接收到的任何数据写回套接字.

这相当于使用事件侦听器使用pipe()方法:

var net = require('net');
net.createServer(function (socket) {
  socket.write('Echo server\r\n');
  socket.on('data', function(chunk) {
    socket.write(chunk);
  });
  socket.on('end', socket.end);
});

Node.js相关问答推荐

在Cypress测试文件中获取项目根路径

monorepo内的NPM包使用不在注册表中的本地包

postgresql层与应用层的序列化

赫斯基添加命令已弃用?

模块';"; node :流程&没有导出的成员';dlopen';

使用 axios 和 Cheerio (Node js) 抓取 google 搜索

为什么即使数据库确实更新了,此 POST 也无法解析并返回 200 代码?

当 Got 包因错误 JSON 崩溃时如何获取响应文本?

mongoose findOneAndUpdate 不更新数据库

使用 fs.createWriteStream 将数据写入 bigquery (node.js) 时出现模式错误

npm chokidar 触发事件两次

BrowserRouter工作时为什么HashRouter不工作?

为什么我的react 表单不能正常工作?

如何在 TypeScript 中输出 Hackerrank 二叉树问题?

npm 不会安装 express 吗?

分块 WebSocket 传输

nodejs v10.3.0 的 gulp 任务问题:src\node_contextify.cc:629: Assertion `args[1]->IsString()' failed

nodejs - 如何读取和输出 jpg 图像?

Fluxible 中的脱水和再水合代表什么?

NodeJS 中的 HTTPS 请求