有没有一种方法可以在连接或表达中设置模式或值
模拟文件上传缓慢?

最佳答案

首先,安装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/

10-11 23:46