URI在MCS / nodejs中进行参数validation

需要你的帮助来解决问题。 我正在编写一个自定义的API在MCS中的方法types为“ GET ”,传递参数与URI。

 service.get('/mobile/custom/****/deviceVersion/:deviceType',function(req,res){ var reqParams = req.params; var finalResponse; var params='/'+reqParams.deviceType; console.info("Request Params>"+params); if(reqParams.deviceType=='{}'){ // ***Here is my problem*** finalResponse = jbuilder.encode(function (json) { json.set('Response', function (json) { json.set('responseCode', '400'); json.set('responseMessage', 'Malformed request query'); }); }); res.status(400).send(finalResponse); res.end(); }else{ //console.info("In Else and length=>"+reqParams.deviceType+"//"+reqParams.deviceType.length); //var params='/'+reqParams.deviceType; var connector='/deviceVersion'; commonHandler.CommonHandlerGetMethodFunction(req,res,connector,params); } }); 

在我的情况下,我必须检查参数deviceType是否为空。

我已经尝试了以下方法

  1. if(reqParams.deviceType=='{}'){} 2. if(JSON.Stringify(reqParams.deviceType)=='{}'){} 3. if(JSON.Stringify(reqParams.deviceType).length==0){} 

任何人都可以请告诉我正确的方法来validationnull? 提前致谢

更新

我将传递deviceType为空的错误是

 { "type": "w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1", "status": 404, "title": "API not found", "detail": "We cannot find the API ******/1.0 for the provided URL path /deviceVersion/. Verify your request parameters and try again.", "o:ecid": "005Hp2YhoPF3j4C_nDs1yZ000Uba00001w, 0:3", "o:errorCode": "MOBILE-57945", "o:errorPath": "/mobile/custom/******/deviceVersion/" } 

MCS自定义API中给出的端点是/deviceVersion/{deviceType}

这个问题已经交给Oracle OTN MCS论坛,并在那里回答: https : //community.oracle.com/thread/4012301

if (!req.params.deviceType)应该工作。

Interesting Posts