Expressjs / connect – 模拟缓慢的file upload
有没有一种方式来设置连接或expression模式或价值模拟慢速file upload?
首先,安装node-limiter
然后创build一个Transform
stream,将节stream任何Stream
s:
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 /秒
我做了这个在我头上,所以要小心:)