2016-09-20 94 views
0
的NodeJS我

使用busbody,上傳的NodeJS 文件上傳文件我可以上傳文件,但我不能在bodyparser得到短信 我fornt結束代碼是:發送形式與

<script> 
    $("input[type='button']").click(function(){ 
    var files = $("input[type='file']").get(); 

    var formData = new FormData(); 
    var text = "xxxxx"; 
    var url = "fileUpload"; 
    if (files.length > 0){ 
     for (var i = 0; i < files.length; i++) { 
     var input = $("input[type='file']").get(i).files; 
     var file = input; 
     if(file.length>0){ 
      console.log(file[0].name); 
      formData.append('userpic',file[0], file[0].name); 
     } 
     } 
     formData.append('text',text); 
     $.ajax({ 
     type: "post", 
     url: url, 
     processData: false, 
     contentType: false, 
     data: formData, // serializes the form's elements. 
     }); 
    } 
    }); 
</script> 

server.js

router.post('/fileUpload', function(req, res) { 
console.log(req.body.text); 
// req.pipe(req.busboy); 
req.busboy.on('file', function(fieldname, file, filename) { 
    console.log('ok2'); 
    var fstream = fs.createWriteStream('./public/images/' + filename); 
    file.pipe(fstream); 
    fstream.on('close', function() { 

    }); 
}); 
res.send('upload succeeded!'); 
}); 

這行代碼console.log(req.body.text); 剛剛返回{}

+0

你可以發佈你的app.js文件代碼嗎? – abdulbarik

+0

@abdulbarik var bodyParser = require('body-parser'); var busboy = require('connect-busboy'); app.use(busboy()); app.use(bodyParser()); 我在app.js中使用middelware – user3046493

回答

1

嘗試用身體的解析器: npm install --save body-parser 然後選擇中間件: var bodyParser = require('body-parser'); app.use(bodyParser.json());

或者直接使用中間件: var bodyParser = require('body-parser'); router.post('/fileUpload', bodyParser.json(), function(req, res) {....});

同時嘗試使用console.log(req.body)看的格式請求。

+0

我在app.js中使用middelware – user3046493

1

我認爲這是因爲這一行:file.pipe(fstream);,這應該是fstream.pipe(file)

而就像史蒂文說,割絨是一個很好的選擇。

+0

我想使用笨蛋笨蛋 – user3046493

+0

我不能勸你,因爲我從來沒有使用過busboy。 – NBeydon