UNPKG

node-web-mvc

Version:
32 lines (31 loc) 944 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * @module MemoryStream * @description 一次性读取整个请求内容 */ const stream_1 = require("stream"); class RequestMemoryStream extends stream_1.Writable { static readBody(request) { return new Promise((resolve, reject) => { new RequestMemoryStream(request, (data, ex) => { ex ? reject(ex) : resolve(data); }); }); } constructor(request, handler) { super(); this.readBuffers = Buffer.from([]); request.pipe(this); this.on('error', (ex) => handler(null, ex)); this.on('finish', () => { handler(this.readBuffers); this.readBuffers = null; }); } _write(chunk, encoding, cb) { this.readBuffers = Buffer.concat([this.readBuffers, chunk]); cb(); } } exports.default = RequestMemoryStream;