Есть ли способ улучшить этот код? Используя стиль 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;
}
Если вы просите помощи в улучшении рабочего кода, это может быть лучше для codereview.stackexchange.com, но обязательно возьмите их тур и сначала прочтите их помощь, особенно Какие темы я могу задать здесь?
Боковое примечание: просто к сведению, хотя «назначение» - это английское слово, это не то, что вам нужно. :-) («Свидание» - это секретная встреча, обычно встреча влюбленных.) Вы, вероятно, захотите там «свидание».
@NinaScholz Данные - это схема мангуста
@ T.J.Crowder спасибо :-)
@ T.J.Crowder Возможно, нет, много упоминаний об объекте body ;-)
@DarrenSweeney - Я в основном стараюсь не объектировать тела. ;-)
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что его следует переместить на codereview.stackexchange.com
@NinaScholz, я обновил вопрос, теперь вы можете видеть, что такое данные,
Нет никакой связи между Data и UserSchema. Это модель? Пожалуйста, добавьте к вопросу пояснения и соответствующие теги (мангуст?).
@estus да это режим.
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
Дампы кода не являются ответами полезный. Скажите какие, что вы сделали, и, что более важно, Почему.
Учитывая, что 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
}
что такое
Data
? пожалуйста, добавьте также недостающие части.