使用sailjs从表单数据中获取空值

时间:2015-09-01 08:48:00

标签: post sails.js multipartform-data

我有一篇关于api的帖子有效......只要有一些数据发布。 我正在寻找一种获取空数据的方法。

为什么我问是因为我事先不知道参数是什么。 api从客户设置的网络调查中获取数据......而不告诉我这些字段是什么。但我知道所有参数都是在HTTP Post调用中发送的。

这是Charles Proxy

捕获的表单数据
    _USERNAME   
    _PASSWORD   
    _TOKEN  
    _RECALLCODE AAA
    _SUBMITTEDDATE  2015.04.21.02.13
    _EDITEDDATE 2015.04.21.02.13
    _COMPLETETYPE   Complete
    _LANGUAGE   en
    _TOTALTIME  311.18
    _SURVEYLINKURL  http://survey.com/AAA
    _RESPONDENTCODE 
    _RESPONDENTTITLE    
    _RESPONDENTFIRSTNAME    
    _RESPONDENTLASTNAME 
    _RESPONDENTSMSID    
    _RESPONDENTPHONE1   
    _RESPONDENTPHONE2   
    _RESPONDENTEMAILADDRESS 
    QUESTION1   TEXT:No
    QUESTION2   TEXT:None+of+the+above
    QUESTION3   TEXT:Nothing

这是我得到的结果

    {
      "params": {
        "_RECALLCODE": "AAA",
        "_SUBMITTEDDATE": "2015.04.21.02.13",
        "_EDITEDDATE": "2015.04.21.02.13",
        "_COMPLETETYPE": "Complete",
        "_LANGUAGE": "en",
        "_TOTALTIME": "311.18",
        "_SURVEYLINKURL": "http://survey.com/AAA",
        "QUESTION1": "TEXT:No",
        "QUESTION2": "TEXT:None+of+the+above",
        "QUESTION3": "TEXT:Nothing",
      }
    }

这是我期待的结果。

    {
      "params": {
        "_USERNAME": null ,
        "_PASSWORD": null ,
        "_TOKEN": null ,
        "_RECALLCODE": "AAA",
        "_SUBMITTEDDATE": "2015.04.21.02.13",
        "_EDITEDDATE": "2015.04.21.02.13",
        "_COMPLETETYPE": "Complete",
        "_LANGUAGE": "en",
        "_TOTALTIME": "311.18",
        "_SURVEYLINKURL": "http://survey.com/AAA",
        "_RESPONDENTCODE": null ,
        "_RESPONDENTTITLE": null ,
        "_RESPONDENTFIRSTNAME": null ,
        "_RESPONDENTLASTNAME": null ,
        "_RESPONDENTSMSID": null ,
        "_RESPONDENTPHONE1": null ,
        "_RESPONDENTPHONE2": null ,
        "_RESPONDENTEMAILADDRESS": null ,
        "QUESTION1": "TEXT:No",
        "QUESTION2": "TEXT:None+of+the+above",
        "QUESTION3": "TEXT:Nothing",
      }
    }

这是检查sailjs中的参数的代码。

 insertResponseByClientCodeAndSurveyCode: function(req,res){

        var responseCode = 200 ;
        var params = req.params.all() ;
        var result = {} ;
        result.params = params ;

        return res.json( responseCode, result ) ;

 } ,

如何更改以获取空数据?

1 个答案:

答案 0 :(得分:1)

根据我的经验,最简单的方法是手动设置。

var params = {
    _USERNAME : req.param('_USERNAME', null),
    _PASSWORD : req.param('_PASSWORD', null),
        ...
    QUESTION3 : req.param('QUESTION3', null)
}

在解析器链的某处,空字段被删除。我不知道这是来自身体解析器还是JSON或者是什么。