Как изменить пустые поля на NULL в express js - PullRequest
0 голосов
/ 20 февраля 2020

Я хочу получить все параметры тела запроса как нулевые, если параметр пуст. Есть ли способ в express js.

{
  username: " ",
  password: ""
}

// Получить как

{
  username: null,
  password: null
}

Ответы [ 2 ]

1 голос
/ 20 февраля 2020

Может быть, вы хотите использовать эту функцию ниже:

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));

Теперь, , если вы хотите использовать в своем express приложении , тогда вы можете установить эту функцию в своем пользовательском middleware. Это будет выглядеть следующим образом:

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

После того, как вы установили свой пользовательский middleware, теперь каждый value ключа в вашем req.body, если он ' ', будет установлен на null.

Надеюсь, это поможет вам.

0 голосов
/ 20 февраля 2020

самым простым способом (если вы хотите изменить сам оригинальный объект)

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