2016-12-13 6 views
1

私のWeb APIでイメージストリームを読み込もうとしています。NodeJs:イメージストリームを取得

以下は私のコードです。

var express = require('express'); 
var bodyParser = require('body-parser'); 
var app = express(); 
var Busboy = require('busboy'); 

app.use(bodyParser.json()); 

app.get('/', function(req, res) { 
    res.send('Hello World!'); 
}); 

app.post('/', function(req, res){ 
var busboy = new Busboy({ 
     headers: request.headers 
    }); 
    busboy.on('file', function(fieldname, file, filename, encoding, mimetype) { 
     console.log('File [' + fieldname + ']: filename: ' + filename + ', encoding: ' + encoding + ', mimetype: ' + mimetype); 
     file.on('data', function(data) { 
      console.log('File [' + fieldname + '] got ' + data.length + ' bytes'); 
     }); 
     file.on('end', function() { 
      console.log('File [' + fieldname + '] Finished'); 
     }); 
    }); 
}); 

app.listen(3000, function() { 
    console.log('Example app listening on port 3000!'); 
}); 

郵便番号を使用して上記のポストエンドポイントをテストすると、何も起こりません。 バスボーイは決して呼び出されない/誘発されないようです。

Busboy NPM https://www.npmjs.com/package/busboy#readme

私の要求が続きます。フィドラーを介してトレースされます。

POST http://localhost:3000/ HTTP/1.1 
Host: localhost:3000 
Connection: keep-alive 
Content-Length: 879585 
Postman-Token: 1defded8-01ff-eb6e-4afa-c49f63b477db 
Cache-Control: no-cache 
Origin: chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36 
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarySrX3beIdojsVD2nB 
Accept: */* 
Accept-Encoding: gzip, deflate, br 
Accept-Language: en-US,en;q=0.8,fr-CA;q=0.6,fr;q=0.4 

------WebKitFormBoundarySrX3beIdojsVD2nB 
Content-Disposition: form-data; name="File"; filename="Chrysanthemum.jpg" 
Content-Type: image/jpeg 

答えて

1

は、すでにbusboyを使用しているようだが、私はまだあなたを気にしないだろうboundry &マルチパートのようmulterとかを試してみることをお勧めします。

しかし、自分でバスボーイをラップしたい場合は、these codeも便利です。

this outも忘れずにチェックしてください。たぶん、郵便配達員のContent-Typeを無効にすることがありますが、これは必須ではありません。

関連する問題