【问题标题】:Multiple path parameters are not working in node-rest-client多个路径参数在 node-rest-client 中不起作用
【发布时间】:2017-01-26 18:32:43
【问题描述】:

我在项目的门户端使用 node-rest-client 库来调用我的 REST 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 调用端点,它工作正常。我也试过切换参数,结果一样。

我还检查了source code on github,但无法弄清楚可能是什么问题:

任何帮助将不胜感激:)

【问题讨论】:

    标签: node.js rest express node-rest-client


    【解决方案1】:

    你有一个语法错误:

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

    应该是:

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

    注意错误的&,其中需要$

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-18
      • 2017-12-01
      • 1970-01-01
      • 2020-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多