use*_*291 2 rest node.js node-request
我们需要公开REST端点.有三个参数,如何使这些可选.要求是它应该与这些参数中的任何一个一起使用.
例如 http://server:port/v1/api/test-api/userId/UnameName/userEmail
app.get('v1/api/test-api/:userId/:userName/:userEmail', function(req, res){
});
Run Code Online (Sandbox Code Playgroud)
当我们通过传递所有三个参数调用它工作正常.但我们希望通过仅传递userId或这三个参数中的任何一个来使其工作.当我们传递较少的参数时,给出错误Cannot GET /v1/api/test-api/test5/123
如何在暴露端点时使参数可选?
更好的解决方案是使用GET参数,例如调用
http://server:port/v1/api/test-api?userId=123&userName=SomeKittens&userEmail=kittens%40example.com
Run Code Online (Sandbox Code Playgroud)
然后,您可以定义您的路线,如:
app.get('v1/api/test-api', function(req, res){
var userName = req.query.userName;
var userEmail = req.query.userEmail;
var userId = req.query.userId;
// Do stuff
});
Run Code Online (Sandbox Code Playgroud)
别忘了包括body-parser(例子)