node-web-mvc
Version:
node spring mvc
32 lines (31 loc) • 944 B
JavaScript
;
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;