如何在节点中检查req.body是否为空,表示?

its*_* me 5 javascript node.js express

以下是我的请求正文,它是从客户端发送的

var  credentials = {

"ConsumerData": {

            "ConsumerStoreId": "a",
            "ConsumerUserId": "a"
        },
        "CustomerData": {

            "CustomerId": "2345678890"
        },
        "ErnD": {
            "UID": "3",
            "TxnDt": "1"
        },

        "PurD": [{
                "ItemCode": "3456tghw3",
                "ItemEANCode": "223222122"

            },
            {
                "ItemCode": "8jghw3865",
                "ItemEANCode": "3334443222"

            }
        ]
}
Run Code Online (Sandbox Code Playgroud)

测试我发送var credentials = {}空凭据

在服务器端控制器(node,express)中,我想检查req.body是否为空

if(!req.body)

{
 console.log('Object missing');
}
if(!req.body.ConsumerData.ConsumerStoreId)
  {
  console.log('ConsumerStoreId missing');
  }
 if(!req.body.CustomerData.CustomerId)
  {
  console.log('CustomerId missing');
  }
  if(!req.body.ErnD.UID)
  {
  console.log('UID missing');
  }
    console.log('outside'); 
Run Code Online (Sandbox Code Playgroud)

我正在检查所有东西,但仅在外面打印它

Yuv*_*uss 12

ES2015:

if(req.body.constructor === Object && Object.keys(req.body).length === 0) {
  console.log('Object missing');
}
Run Code Online (Sandbox Code Playgroud)

PRE ES2015:

function isEmpty(obj) {
    for(var prop in obj) {
        if(obj.hasOwnProperty(prop))
            return false;
    }
    return JSON.stringify(obj) === JSON.stringify({});
}

if(isEmpty(req.body)) {
    console.log('Object missing');
}
Run Code Online (Sandbox Code Playgroud)

有关es2015之前风格的更多方法:https://coderwall.com/p/_g3x9q/how-to-check-if-javascript-object-is-empty


Kor*_*vis 8

if (Object.keys(req.body).length === 0) {
   // Do something
}
Run Code Online (Sandbox Code Playgroud)

  • 虽然此代码可能会回答问题,但提供有关_how_ 和/或 _why_ 的其他 [上下文](https://meta.stackexchange.com/q/114762) 可以解决问题,这将提高答案的长期价值。提及为什么这个答案比其他答案更合适也没有什么坏处。 (2认同)