2017-01-26 18 views
0

J'utilise la bibliothèque node-rest-client du côté portail de mon projet pour appeler mes API de repos.Les paramètres de plusieurs chemins ne fonctionnent pas dans node-rest-client

Je le suivant enregistré Méthode du côté portail:

client.registerMethod("addFriendToUser", host + "https://stackoverflow.com/users/&{userId}/friends/${friendId}", "POST"); 

Quand je l'appelle sur la manière suivante avec deux paramètres de chaîne, un seul d'entre eux apparaîtront sur le côté api:

var args = { 
    path: { 
     'userId': '1', 
     'friendId': '2' 
    }, 
    headers: { 
     "Content-Type": "application/json", 
     "Authorization": /* ... */ 
    } 
}; 

client.methods.addFriendToUser(args, function(data, response) { 
    // ... 
}); 

du côté de l'API, j'ai le point final suivant:

// ... 
var router = express.Router(); 

router.route('/users/:userId/friends/:friendId') 
    .post(/* ... middleware to check the Auth token from the header */, function(req, res, next) { 
     // ... 
     // Debugging the request parameters 
     console.log(req.params); 
     // ... 
    }); 

Dans ce cas, je wi Verrez les paramètres suivants dans le req.params:

{ 
    userId: '&{userId}', 
    friendId: '1' 
} 

Il semble que mon premier paramètre ne soit pas transmis au point final. Si j'appelle le point de terminaison directement depuis POSTMAN, cela fonctionne correctement. J'ai aussi essayé de changer les paramètres mais le même résultat.

Et j'ai aussi vérifié le source code on github mais ne peux pas comprendre ce qui pourrait être le problème:

Toute aide sera appréciée :)

Répondre

1

vous avez une erreur de syntaxe:

client.registerMethod("addFriendToUser", host + "https://stackoverflow.com/users/&{userId}/friends/${friendId}", "POST"); 

devrait être:

client.registerMethod("addFriendToUser", host + "https://stackoverflow.com/users/${userId}/friends/${friendId}", "POST"); 

Notez le égaré &$ est requis

+0

Ahh merci ... facepalm :) – peetya