Expressjs / connect – 模拟缓慢的file upload

有没有一种方式来设置连接或expression模式或价值模拟慢速file upload?

首先,安装node-limiter然后创build一个Transformstream,将节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 /秒

我做了这个在我头上,所以要小心:)