ฉันใช้ Connect-busboy กับ Express:
var busboy = require('connect-busboy');
app.configure(function () {
app.use(express.logger());
app.use(busboy());
app.use(bodyParser());
app.use(function(err, req, res, next){
res.send(500, 'error');
});
และด้วยการร้องขอดังต่อไปนี้:
app.post('/save', function (req, res) {
console.log("Got request")
try {
console.log("I got it");
req.pipe(req.busboy);
var name = "";
var start = "";
var fstream;
req.busboy.on('field', function (fieldname, val, fieldnameTruncated, valTruncated) { }
req.busboy.on('file', function (fieldname, file) {
//some code
}
req.busboy.on('error', function (error) {
console.log("Error in uploading file with chunks: " + error);
// some code
})
req.busboy.on('finish', function () {
fstream.on('close', function(){
//some code
})
})
ลูกค้าส่งคำขอ 6 รายการให้ฉันเพื่อบันทึกคำสั่ง ฉันได้รับคำขอ 2-6 รายการที่ไม่สอดคล้องกัน
หมายความว่า Got request
พิมพ์เพียง 2 ครั้ง แต่ไคลเอ็นต์ส่งคำขอ 6 ครั้ง
เมื่อฉันลบบรรทัด app.use(busboy());
Express.app
จะได้รับคำขอ 6 (แต่ฉันไม่สามารถใช้ฟังก์ชันนี้ได้เนื่องจาก req.busboy.on
ใช้งานไม่ได้)
ข้อสรุปคือ app.use(busboy());
เพิกเฉยต่อคำขอบางรายการจากไคลเอ็นต์ และ app.post
จะไม่เริ่มทำงาน ฉันจะแก้ปัญหาได้อย่างไร?
next()
เพื่อไปยังมิดเดิลแวร์ / เส้นทางถัดไป ซอร์สโค้ดนั้นค่อนข้างง่าย - person mscdex   schedule 14.08.2014app.use(busboy());
ฉันประสบความสำเร็จในการรับคำขอทั้งหมด - person Or Smith   schedule 14.08.2014app.use(busboy());
ด้วยapp.use(function(req,res,next){next();});
- person mscdex   schedule 14.08.2014