發佈多部分表單時,我可以使用connect-busboy檢索文件,但無法從req.body中獲取值。我假設我需要掛鉤req.busboy.on('field')
,但不知道將其放置在何處,仍然允許我使用當前正在處理上載文件的功能。使用connect-busboy檢索req.body
routes.js
var busboy = require('connect-busboy');
module.exports = function (app) {
app.use(busboy());
app.route('/upload')
.post(function (req, res) {
req.pipe(req.busboy);
upload.createImg(req, res);
});
upload.js
var fs = require('fs');
exports.createImg = function (req, res) {
var fstream,
path = './uploads/temp/';
req.busboy.on('file', function (fieldname, file, filename) {
fstream = fs.createWriteStream(path + filename);
file.pipe(fstream);
fstream.on('close', function() {
fs.readFile(path + filename, function (err, data) {
// need help here
});
});
});
});
在上面的代碼示例中,我是一個檢索上傳的文件,然後我用ImageMagick成功操作。但是,問題是我想從req.body中檢索數據,例如req.height
,req.width
等等。看起來,busboy並沒有完成它的魔法,不過,因爲req.body
是undefined
。
我如何才能在fstream.on('close', ...)
之內將req.body
一起傳遞給我的函數?
這一附加層是正是我需要的。謝謝。 – Steve