私はエクスプレスでconnect-busboyを使用します:
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
は起動されないということです。どうすれば解決できますか?