Несколько параметров пути не работают в node-rest-client
Я использую библиотеку node-rest-client на стороне портала моего проекта для вызова моих остальных API.
У меня есть следующий зарегистрированный метод на стороне портала:
client.registerMethod("addFriendToUser", host + "/users/&{userId}/friends/${friendId}", "POST");
Когда я вызываю его следующим образом с двумя строковыми параметрами, только один из них появится на стороне API:
var args = {
path: {
'userId': '1',
'friendId': '2'
},
headers: {
"Content-Type": "application/json",
"Authorization": /* ... */
}
};
client.methods.addFriendToUser(args, function(data, response) {
// ...
});
На стороне API у меня есть следующая конечная точка:
// ...
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);
// ...
});
В этом случае я увижу следующие параметры в req.params
:
{
userId: '&{userId}',
friendId: '1'
}
Кажется, что мой первый параметр не передается в конечную точку. Если я вызываю конечную точку напрямую из POSTMAN, она работает нормально. Я также пытался переключить параметры, но тот же результат.
И я также проверил исходный код на GitHub, но не могу понять, в чем может быть проблема:
Любая помощь будет оценена:)
1 ответ
У вас есть синтаксическая ошибка:
client.registerMethod("addFriendToUser", host + "/users/&{userId}/friends/${friendId}", "POST");
должно быть:
client.registerMethod("addFriendToUser", host + "/users/${userId}/friends/${friendId}", "POST");
Обратите внимание на неуместный &
где $
необходимо