2016-10-28 15 views
1

私のiosアプリケーションが接続されているapiを作成しようとしています。しかし、私は質問を投稿して実行し、id, name, birth and countryにパラメータを設定したときには、error: not foundというプロンプトが表示され続けます。しかし、私はちょうど郵便配達でurl/users/14253/test/10-20-1992/denmarkを実行する場合、それはうまく動作するので、私はちょっと混乱して何が間違っているのですか?nodejs apiとswiftアプリケーションとの接続

APIルート

router.post('/:id/:name/:birth/:country', function(req, res, next) { 

    var params = req.params; 

    var accessHeader = req.headers; 


    var user = new User({ 
    _id: params.id, 
    name: params.name, 
    birthday: new Date(params.birth), 
    country: params.country 
    }); 

    user.save(function(err) { 
    if (err) { 
     res.send(err); 
    } else { 
     res.json({ message: 'User created!' }); 
    } 
    }); 


}); 

迅速alamofire要求

func passUserData(id: String, name: String, birth: String, country: String, token: AccessToken) { 

    let headers = [ 
     "Content-Type": "application/x-www-form-urlencoded" 
    ] 

    Alamofire.request("http://url/users", method: .post, parameters: ["id" : id, "name" : name, "birth" : birth, "country" : country], encoding: JSONEncoding.default, headers: headers).responseString { closureResponse in 
     if String(describing: closureResponse.result) == "SUCCESS" 
     { 
      print(closureResponse) 
     } else { 
      print(closureResponse) 

     }} 
} 
+0

node.jsコードに 'params'を印刷できますか? – DrakaSAN

+0

あなたはurlの中ではなく、本文中のパラメータを渡します。クライアント側で行うリクエストには、次のURLがあります。 "/ users"ボディ内のパラメータを持つ – krakig

+0

スウィフトコードのように、http:// IP:3000/users?idの形式でURLを生成します= bla&name = bla&etc、絶対にあなたが望むURLではありません。パラメータはURL自体に埋め込む必要があります。 – Gimby

答えて

2

あなたは、URL内のパラメータ渡しのどちらか:あなたは、体内のパラメータを渡すのどちらか

Alamofire.request("http://172.20.10.2:3000/users/" + id + "/" + name + "/" + birth + "/" + country, ...); 

を:

router.post('/users', function(req, res, next) { 

    var body = req.body; 

    var accessHeader = req.headers; 


    var user = new User({ 
    _id: body.id, 
    name: body.name, 
    birthday: new Date(body.birth), 
    country: body.country 
    }); 

    user.save(function(err) { 
    if (err) { 
     res.send(err); 
    } else { 
     res.json({ message: 'User created!' }); 
    } 
    }); 


}); 
関連する問題