有没有一种方法可以在连接或表达中设置模式或值
模拟文件上传缓慢?
最佳答案
首先,安装node-limiter
,然后创建一个Transform
流,该流将限制所有Stream
:
var util = require('util');
var Transform = require('stream').Transform;
var TokenBucket = require('limiter').TokenBucket;
function BucketStream(rate, interval, parentBucket, options) {
Transform.call(this, options);
this.bucket = new TokenBucket(Number.POSITIVE_INFINITY, rate, interval, parentBucket);
}
util.inherits(BucketStream, Transform);
BucketStream.prototype._transform = function(chunk, encoding, callback) {
this.bucket.removeTokens(chunk.length, function(err) {
callback(err, chunk);
});
};
然后,请求是一个
ReadableStream
:var bucketStream = new BucketStream(1024 * 500, 'second'); // 500KB/sec
req.pipe(bucketStream);
现在,以所需的速度从
bucketStream
(而不是req)中读取内容,您将仅获得500KB/秒的速度我做到了这一点,所以要当心:)
关于node.js - Express.js/Connect-模拟文件缓慢上传,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12919457/