2017-10-21 12 views
0

私は、postmanとうまく動作しているapi投稿要求をセットアップしましたが、私の迅速なコードでは、リクエストとともにparamsを送信しません。私は、サーバーコードノードJSがある応答POSTリクエストにparams JSONが含まれていません

<NSHTTPURLResponse: 0x618000a26560> { URL: http://example.com:3000/upvote } { status code: 200, headers { 
Connection = "keep-alive"; 
"Content-Length" = 28; 
"Content-Type" = "application/json; charset=utf-8"; 
Date = "Sat, 21 Oct 2017 03:11:46 GMT"; 
Etag = "W/\"1c-BWaocQVSSeKjLiaYjOC8+MGSQnc\""; 
"X-Powered-By" = Express;} } 

{ 
    n = 0; 
    nModified = 0; 
    ok = 1; 
} 

を得た

let parameters = ["spotId" : spotId, 
         "voteruptime" : currentDate, 
         "voterupid" : userId] as [String : Any] 

    guard let url = URL(string: "http://example.com:3000/upvote") else { return } 
    var request = URLRequest(url: url) 
    request.httpMethod = "POST" 
    request.addValue("Application/json", forHTTPHeaderField: "Content-Type") 
    guard let httpBody = try? JSONSerialization.data(withJSONObject: parameters, options: []) else { return } 
    request.httpBody = httpBody 
    print(request.httpBody) 

    let session = URLSession.shared 
    session.dataTask(with: request) { (data, response, error) in 
     if let response = response { 
      print(response) 
     } 

     if let data = data { 
      do { 
       let json = try JSONSerialization.jsonObject(with: data, options: []) 
       print(json) 
      } catch { 
       print(error) 
      } 
     } 

     }.resume() 

app.post('/upvote', function(req, res){ 

    Spots.update({_id: req.query.spotId},{$push:{'upvotes':{'voterupid':req.query.voterupid,'voteruptime':req.query.voteruptime}}},function(err, Spots){ 
    console.log(req.url) 


if(err){ 
       throw err; 
       } 
    res.json(Spots); 
}); 

}); 

私はまたalamofireない、そしてそれは同じ問題だ、何がサーバーに送信PARAMSてみました。

答えて

0

私は、req.queryがリクエスト文字列に渡されたデータにアクセスするのに対し、リクエスト本体にデータをPOSTしているのが問題だと思います。体にアクセスするには

、あなたはここに複数回答で説明したように、ボディパーサーを使用する必要があります。How to access the request body when POSTing using Node.js and Express?

+1

私はreq.bodyするreq.queryを変更し、それが働きました。マイクありがとう。 – Thamer

関連する問題