以下是我的请求正文,它是从客户端发送的
var credentials = {
"ConsumerData": {
"ConsumerStoreId": "a",
"ConsumerUserId": "a"
},
"CustomerData": {
"CustomerId": "2345678890"
},
"ErnD": {
"UID": "3",
"TxnDt": "1"
},
"PurD": [{
"ItemCode": "3456tghw3",
"ItemEANCode": "223222122"
},
{
"ItemCode": "8jghw3865",
"ItemEANCode": "3334443222"
}
]
}
用于测试我发送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');
我正在检查所有内容,但仅在外面打印
答案 0 :(得分:8)
<强> ES2015:强>
if(req.body.constructor === Object && Object.keys(req.body).length === 0) {
console.log('Object missing');
}
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');
}
了解 pre es2015 风格的更多方式:https://coderwall.com/p/_g3x9q/how-to-check-if-javascript-object-is-empty
答案 1 :(得分:3)
if (Object.keys(req.body).length === 0) {
// Do something
}
答案 2 :(得分:0)
const isEmpty = require('lodash.isempty');
if(isEmpty(req.body)) {
console.log('Empty Object');
}
以下是文档https://lodash.com/docs/4.17.11#isEmpty
检查value是否为空对象,集合,地图或集合。
如果对象没有自己的可枚举字符串,则认为它们为空 键控属性。
类似数组的值,例如参数对象,数组,缓冲区,字符串, 或类似jQuery的集合,如果它们的长度是空的 的0。类似地,如果映射和集合具有一个 大小为0。