我尝试了两个不同的库:multer和formidable用于处理节点中的文件上传,并且它们在上传期间都使用 100% CPU。
这是一个常见的节点问题吗?以及人们在高并发环境下是如何处理的?
节点版本:(v0.10.36
我什至尝试过其他版本,如v0.11.x或v0.10.33)
令人敬畏的例子
Picture.upload = function(user, req, cb) {
var formidable = require('formidable')
var form = new formidable.IncomingForm();
form.uploadDir = "./uploads";
form.maxFieldsSize = app.settings.uploadMaxSize * 1024 * 1024;
form.maxFields = 1000;
form.parse(req, function(err, fields, files) {
cb(null, files);
});
}
多重例子
app.use(multer({ dest: './uploads/',
rename: function (fieldname, filename) {
return filename+Date.now();
},
limits: {
files: 1,
fileSize: app.settings.uploadMaxSize * 1024 * 1024
}
})); // after I process the file from req.files
文件上传为multipart/form-data
.
我正在使用loopback,但我认为这没有任何区别。