2015-11-30 2 views
0

Здравствуйте и спасибо заранее,Как просмотреть/извлечение объекта FormData из тела запроса (Javascript)

Я пишу веб-приложение для добавления видео, который загружает видео и сохраняет его в базу данных Монго. Я искал в Интернете пару дней, чтобы узнать, как получить этот объект DataForm из тела запроса, чтобы я мог сохранить его в базе данных.

Я просто не уверен, что я ищу на серверной стороне. Как вы получаете видеоданные из тела запроса? Вот мой код:

//client side 
upload: function(event) { 
     // prevent default browser submit 
     event.preventDefault(); 
     event.stopPropagation(); 
     var fileInput = this._("file1").files[0]; 

     if (!fileInput) { 
      return; 
     } 

     var formdata = new FormData(); 
     formdata.append("file1", fileInput); 
     api.addContent(formdata, this.updateCB); 
} 

//api call 
addContent: function(data, cb) { 
     var url = "/api/content"; 
     $.ajax({ 
      url: url, 
      data: data, 
      processData: false, 
      contentType: false, 
      type: 'POST', 
      headers: {'Authorization': localStorage.token}, 
      success: function(res) { 
       if (cb) 
        cb(true, res); 
      }, 
      error: function(xhr, status, err) { 
       // if there is an error, remove the login token 
       delete localStorage.token; 
       if (cb) 
        cb(false, status); 
      } 
     }); 
} 

//server side 
app.post('/api/content', function (req,res) { 
    user = User.verifyToken(req.headers.authorization, function(user) { 
     if (user) { 
     // req.body.data should work 
     Content.create({data:req.body.data,user:user.id}, function(err,content) { 
     if (err) { 
      res.sendStatus(403); 
      return; 
     } 
     res.json({content:'content saved'}); 
     }); 
     } else { 
      res.sendStatus(403); 
     } 
    }); 
}); 

А вот скриншот тела запроса в хроме: Request body

ответ

0

Оказывается, мне нужно, чтобы разобрать через FormData объекта.

var multiparty = require('multiparty'); 


    app.post('/api/content', function (req,res) { 
     console.log(req); 
     // validate the supplied token 
     user = User.verifyToken(req.headers.authorization, function(user) { 
      if (user) { 

      var form = new multiparty.Form(); 
      form.parse(req, function(err, fields, files) { 
      var video_path = String(files.file1[0].path); 
      Content.create({video:video_path,user:user.id}, function(err,content) { 
      if (err) { 
       res.sendStatus(403); 
       return; 
      } 
      res.json({content:content}); 
      }); 
      }); 
      } else { 
       res.sendStatus(403); 
      } 
     }); 
    }); 
Смежные вопросы