Как улучшить код назначения в Node.js (стиль ES6) - PullRequest
0 голосов
/ 26 сентября 2018

Есть ли способ улучшить этот код?В стиле ES6 я использую последнюю стабильную версию node.js.

const UserSchema = new mongoose.Schema({
date: string;
dateObj: {
    year: number,
    month: number,
    day: number
};
project: string;
task: string;
hours: number;
});

let data = new Data();
data.date = new Date(body.date);
    data.dateObj = {
        year: body.dateObj.year,
        month: body.dateObj.month,
        day: body.dateObj.day
    }
    data.project = body.project;
    data.task = body.task;
    data.hours = body.hours;
}

Ответы [ 3 ]

0 голосов
/ 26 сентября 2018

Учитывая, что Data является моделью Mongoose, свойства можно выбрать из объекта и присвоить экземпляру модели через конструктор document аргумент :

const date = new Date(body.date);
const { year, month, day } = body.dateObj;
const { project, task, hours } = body;

let data = new Data({
  date,
  dateObj: { year, month, day },
  project, task, hours 
});

Сбор body.dateObjсвойства могут быть ненужными.

0 голосов
/ 26 сентября 2018

Вы можете использовать комбинацию конструкций es6, таких как деструктурирование и распространение.Посмотрите на следующий фрагмент.

let data = new Data();
const {date, dateObj, project, task, hours} = body;
data = {
    date: new Date(date),
    dateObj: {...dateObj},
    project,
    task,
    hours
}
0 голосов
/ 26 сентября 2018
    let data = Object.assign({},
    { dateObj:{
          year: body.dateObj.year,
          month: body.dateObj.month,
          day: body.dateObj.day
         }, 
     project: body.project,
     task: body.task,
     hours: body.hours,
     new Data() 
    })

Вы можете использовать object.assign

...