如何在express js中将空白字段更改为null

How to change blank fields to null in express js

如果参数为空,我想将所有请求正文参数设为空。快递js有什么办法吗

{
  username: " ",
  password: ""
}

// 获取为

{
  username: null,
  password: null
}

以最简单的方式(如果你想改变原始对象本身)

let obj = {username:'' , password:''}
for(i in obj){
    if(obj[i] === '')
        obj[i] = null
}

也许您想使用以下功能:

let objects = {
    username: ' ',
    password: '',
    testing: [
      {
        id: ' ',
        testing: 'testing'
      }
    ],
    obj: {
      key: ' ',
      value: 'value'
    }
}

function setEmptyToNull(obj) {
    Object.keys(obj).forEach(key => {
        if (Array.isArray(obj[key])) {
            obj[key].map(o => {
                if (typeof o === 'object') {
                    setEmptyToNull(o);
                }
            })
        } else if(typeof obj[key] ==='string') {
          if(obj[key].trim() === '') {
            obj[key] = null;
          }  
        } else if(typeof obj[key] === 'object') {
          setEmptyToNull(obj[key]);
        }
    });
    return obj;
}

console.log(setEmptyToNull(objects));

现在,如果您想在您的快递应用程序中使用,那么您可以在您的自定义 middleware 中设置该功能。它看起来像下面的代码:

app.use((req, res, next) => {
  if(req.body) {
    setEmptyToNull(req.body);
  };
  next();
});

设置自定义 middleware 后,现在 req.body 中的每个 value 键,如果是 ' ' 则将设置为 null .

希望对您有所帮助