在busboy.on('file', function(fieldname, file, filename, encoding, mimetype)中添加try-catch代码块,并手动调用res.end()发送错误响应以确保问题得到处理。
示例代码:
const express = require('express');
const app = express();
const Busboy = require('busboy');
app.post('/upload', function(req, res) {
const busboy = new Busboy({ headers: req.headers });
const uploads = {};
busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
try {
const filepath = '/path/to/save/place/' + filename;
uploads[fieldname] = filepath;
file.pipe(fs.createWriteStream(filepath));
} catch (e) {
console.error(e);
res.status(500).end('Upload error');
}
});
busboy.on('finish', function() {
res.status(200).json({'status': 'success', 'files': uploads});
});
req.pipe(busboy);
});
app.listen(3000, function() {
console.log('Listening on port 3000');
});