Как улучшить код назначения в Node.js (стиль ES6)

Есть ли способ улучшить этот код? Используя стиль 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;
}

что такое Data? пожалуйста, добавьте также недостающие части.

Nina Scholz 26.09.2018 13:13

Если вы просите помощи в улучшении рабочего кода, это может быть лучше для codereview.stackexchange.com, но обязательно возьмите их тур и сначала прочтите их помощь, особенно Какие темы я могу задать здесь?

T.J. Crowder 26.09.2018 13:13

Боковое примечание: просто к сведению, хотя «назначение» - это английское слово, это не то, что вам нужно. :-) («Свидание» - это секретная встреча, обычно встреча влюбленных.) Вы, вероятно, захотите там «свидание».

T.J. Crowder 26.09.2018 13:15

@NinaScholz Данные - это схема мангуста

Danish 26.09.2018 13:16

@ T.J.Crowder спасибо :-)

Danish 26.09.2018 13:16

@ T.J.Crowder Возможно, нет, много упоминаний об объекте body ;-)

StudioTime 26.09.2018 13:20

@DarrenSweeney - Я в основном стараюсь не объектировать тела. ;-)

T.J. Crowder 26.09.2018 13:22

Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что его следует переместить на codereview.stackexchange.com

StudioTime 26.09.2018 13:28

@NinaScholz, я обновил вопрос, теперь вы можете видеть, что такое данные,

Danish 26.09.2018 13:40

Нет никакой связи между Data и UserSchema. Это модель? Пожалуйста, добавьте к вопросу пояснения и соответствующие теги (мангуст?).

Estus Flask 26.09.2018 13:59

@estus да это режим.

Danish 26.09.2018 14:08
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
11
50
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

    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

Дампы кода не являются ответами полезный. Скажите какие, что вы сделали, и, что более важно, Почему.

T.J. Crowder 26.09.2018 13:19
Ответ принят как подходящий

Учитывая, что 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 может быть ненужным.

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

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

Другие вопросы по теме