Несколько параметров пути не работают в 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");

Обратите внимание на неуместный & где $ необходимо

Другие вопросы по тегам