Ich musste vor kurzem ein Projekt konvertieren, das viel Arbeit mit ASP.NET Core 1.0 zu Node.js hatte. Ich bin absolut nicht in meiner Komfortzone, da ich kaum etwas über JavaScript weiß und das gute Leben von ASP-Serialisierung von C# -Klassen für mich hatte, ohne dass ich JSON selbst machen müsste. Node möchte, dass ich selbst den JSON mache, mit dem ich eine schlechte Zeit habe.Benutzerdefinierte "Typen" in JSON (Knoten/Express) und JSON-Arrays
Es ist eine Fitness-App. Sie haben Kunden mit etwas Fortschritt, die ihre Aufzüge und Zeug enthalten. In C# ist, dass in einem Traininge Objekt, wie unten zu sehen:
public struct Progress
{
public Workout[] Workouts;
}
Workouts ist ein wiederverwendbares Objekt Dinge wie Timing enthält, Sätze, Wiederholungen, all die guten Sachen. Ich könnte das Workouts-Objekt einfach in jedes einzelne meiner Schemas umschreiben, die es brauchen, aber es muss einen besseren Weg geben? Ich lese etwas über $schema
und $ref
, aber ich bin nicht vertraut mit der Verwendung von ihnen oder wenn dies die richtige Anwendung dieser Schlüsselwörter ist.
Schließlich, wie würde ich ein Array dieses benutzerdefinierten Workout-Objekts definieren?
Dies ist mein JSON-Objekt und der Inhalt von client.js
bisher. Das Fortschrittsbit ist das, was ich am liebsten erreichen möchte.
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
}]
});
Sind Sie fragen, ob ein Schema ein anderes Schema für eingebettete Dokumente verwenden kann? –
@JasonCust vielleicht? Ich verwende das Workouts-Schema in einigen anderen Schemata, damit ich es vermeiden möchte, es immer wieder in den verschiedenen Schemas zu schreiben und einfach "Fortschritt: Training" zu nennen. Irgendwelche Ideen? – KingDan
Es hängt davon ab, ob Sie erwarten, dass die gleichen Daten in den verschiedenen Schemas enthalten sind oder wenn Sie nur die gleiche Struktur haben möchten. Wenn beispielsweise ein Dokument aus 'ClientSchema' erstellt wurde, das ein Unterdokument 'client.progress []. Workouts' enthält, müssten die von diesem Unterdokument dargestellten Daten nur von diesem bestimmten Client-Dokument aus zugänglich sein oder würden es auch brauchen ein Unterdokument in einem anderen Dokument (Kunde oder nicht) sein? –