2016-09-20 87 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