多个路径参数在 node-rest-client 中不起作用
Multiple path parameters are not working in node-rest-client
我在项目的门户端使用 node-rest-client 库来调用我的 rest APIs。
我在门户端注册了以下方法:
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 但无法弄清楚可能是什么问题:
任何帮助将不胜感激:)
你有一个语法错误:
client.registerMethod("addFriendToUser", host + "/users/&{userId}/friends/${friendId}", "POST");
应该是:
client.registerMethod("addFriendToUser", host + "/users/${userId}/friends/${friendId}", "POST");
注意错位的 &
,其中需要 $
我在项目的门户端使用 node-rest-client 库来调用我的 rest APIs。
我在门户端注册了以下方法:
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 但无法弄清楚可能是什么问题:
任何帮助将不胜感激:)
你有一个语法错误:
client.registerMethod("addFriendToUser", host + "/users/&{userId}/friends/${friendId}", "POST");
应该是:
client.registerMethod("addFriendToUser", host + "/users/${userId}/friends/${friendId}", "POST");
注意错位的 &
,其中需要 $