Мне недавно пришлось преобразовать проект, который выполнял большую работу с ASP.NET Core 1.0 до Node.js. Я абсолютно вне зоны комфорта, почти ничего не знаю о JavaScript и хорошо провел серию ASP классов C# для меня, без меня сам я должен был сделать JSON. Узел хочет, чтобы я сам сделал JSON, с которым у меня плохое время.Пользовательские «типы» в JSON (узел/экспресс) и массивы JSON
Это приложение для фитнеса. У вас есть клиенты с некоторым прогрессом, содержащим лифты и прочее. В C#, то есть в объекте тренировками, как показано ниже:
public struct Progress
{
public Workout[] Workouts;
}
Разминки является повторно используемый объект, содержащий такие вещи, как выбор времени, наборы, повторений, все хорошие вещи. Я мог бы просто переписать объект Workouts в каждой из моих схем, которые ему нужны, но должен быть лучший способ? Я прочитал что-то около $schema
и $ref
, но я не знаком с их использованием или если это правильное применение этих ключевых слов.
Наконец, как бы я определил массив этого настраиваемого объекта Workout?
Это мой объект JSON и содержимое client.js
. Достигнутый бит - это то, чего я идеально хотел бы достичь.
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ClientSchema = new Schema({
measurements: [{
height: Number,
weight: Number
}],
personal_information: [{
birthday: Date,
gender: String
}],
contact_information: [{
phone: String,
email: String
}],
progress: [{
workouts: WorkoutList
}]
});
Вы спрашиваете, если одна схема может использовать другую схему для встраиваемых документов? –
@JasonCust, может быть? Я использую схему тренировок в нескольких других схемах, поэтому я бы хотел не писать это снова и снова в разных схемах и просто называть «прогресс: тренировка». Есть идеи? – KingDan
Это зависит от того, ожидаете ли вы, что одни и те же данные будут включены в разные схемы или если вам нужна только одна и та же структура. Например, если документ, созданный из «ClientSchema», который включает в себя под-документ 'client.progress []. Workouts', будут ли данные, представленные этим поддоку, доступными только из этого конкретного клиентского документа или ему также понадобится быть поддокументом в другом документе (клиенте или иным образом)? –