2016-09-11 6 views
0

私はHTML形式の2つの入力 - テキスト1とファイル1 - を持っています。 ファイルとデータを同じリクエストでノードサーバーに投稿

<form method="post" action="http://localhost:3000/users"> 
      <input type="text" name="username" /> 
      <input type="file" name="file" /> 
      <button type="submit">Submit</button> 
     </form> 

は今、私はノードサーバ -

router.post('/users', function(req, res, next){ 
    req.pipe(req.busboy); 
    req.busboy.on('file', function(fieldname, file, filename){ 
     var fstream=fs.createWriteStream('./uploads/'+filename); 
     file.pipe(fstream); 
     fstream.on('close', function(){ 
      var user = User({ 
       username: req.body.username, 
      }); 
      user.save(function(err){ 
       if(err) 
        res.json({error: err}); 
       else 
        res.redirect('/'); 
      }); 
     }); 
    }); 
}); 

にそれを掲示しています。しかし、私は唯一のユーザ名またはファイルのいずれかを取得することができています(私はHTML形式でenctype="multipart/form-data"を使用する場合。)時。

1つのリクエストで両方を保存する方法はありますか?はいの場合はどうですか?

何か助けていただければ幸いです。

ありがとうございました。

答えて

1

あなたはファイルフィールドのみをリッスンしています。非ファイルフィールドに関する通知を受け取る場合は、'field'イベントリスナーを追加する必要があります。

req.busboy.on('field', function(key, val, keyTrunc, valTrunc) { 
    console.log(key, val); 
}); 
関連する問題