2016-11-03 9 views
0

私はここで壁に当たっており、実際にこれを達成する明確な方法を見つけることはできません。自分のデータベースに追加する新しいビデオを作成したいと思います。私はビューフォームからすべての情報を取得しますが、いくつかのキーはAPIから来なければなりません。ここに私が持っているものと必要としているものの基本的な例があります。これを達成する良い方法は何ですか?あなたは、おそらく使用する方が便利であるビルトインノードAPIからの情報を要求するhttpモジュール、そうでない場合requestを、使用することができますExpressが投稿要求の中でAPIを呼び出す

router.post("/new", function(req, res){ 
 
    var videoId = req.body.videoId; 
 
    var views = req.body.views; 
 

 
    //call the api with the video Id here somehow, and get title key for the video object below 
 

 
    //"www.api.com/"+videoId" 
 
    
 
    var video = { 
 
     title: title, //title from received from the api call 
 
     views: views 
 
    } 
 
    
 
    video.create(video, function(err, video){ 
 
     //etc 
 
    }) 
 
});

+0

、および完全なコールバックの中で述べた値のために体を解析し、続行し、あなたのビデオオブジェクトにそれらを挿入します。簡単です。 –

答えて

0

あなたのコードは、次のようになります。APIにGETリクエストを送信

var request = require('request') 

router.post("/new", function(req, res){ 
    var videoId = req.body.videoId; 
    var views = req.body.views; 

    //call the api with the video Id here somehow, and get title key for the video object below 
    request.get('www.api.com/' + videoId, function(err, res) { 


     var videoData = { 
      title: res.title, //title from received from the api call 
      views: res.views 
     } 

     video.create(videoData, function(err, video){ 
      //etc 
     }) 
    }) 
}); 
+0

Mehdi、ありがとう、私はそれが私が探していたものだと思います。あなたの答えを見ると、間違った質問をしたことが分かります。基本的には、router.getやapp.getを使用せずにリクエストを送信する方法を知りたかったので、呼び出す前に特定のディレクトリにアクセスする必要があるためです。私はnpmリクエストに行くつもりですが、これは他の投稿にもやってもらえるようです。ありがとうございました! – alexr101

関連する問題