最近、ASP.NET Core 1.0で多くの作業を行ったプロジェクトをNode.jsに変換する必要がありました。私はJavaScriptについてほとんど何も知らず、JSONを自分でやらなくても、ASPの良い生活を送ってくれて、私のためにC#クラスをシリアライズしています。ノードは私がJSONを自分自身でやって欲しいと願っています。JSON(ノード/エクスプレス)とJSON配列のカスタム "タイプ"
フィットネスアプリです。クライアントにはリフトや物資が入った進捗状況があります。以下に見られるように、C#では、それは、ワークアウト対象である:
public struct Progress
{
public Workout[] Workouts;
}
ワークアウトは、タイミング、設定、繰り返し、すべての良いもののようなものを含む再利用可能なオブジェクトです。ワークスペースオブジェクトを必要とするすべてのスキーマに1つずつ書き直すことができますが、より良い方法が必要ですか?私は$schema
と$ref
について読んでいますが、それらの使い方やこれが正しいキーワードのアプリケーションであるかどうかはよくわかりません。
最後に、このカスタムワークアウトオブジェクトの配列をどのように定義しますか?
これは私の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
}]
});
1つのスキーマが埋め込まれた文書に別のスキーマを使用することができれば、あなたは求めていますか? –
@JasonCustおそらく?私はいくつかの異なるスキーマでWorkoutsスキーマを使用していますので、別のスキーマで繰り返し記述することは避けたいと思います。「進捗状況:Workout」などと呼んでください。何か案は? – KingDan
異なるスキーマに同じデータが含まれているかどうか、または同じ構造を必要とするかどうかによって異なります。例えば、 'client.progress [] .workouts'サブドキュメントを含む' ClientSchema'から作成されたドキュメントがあれば、このサブドキュメントによって表されるデータはこの特定のクライアントドキュメントからアクセス可能である必要がありますか、別の文書(クライアントなど)のサブ文書にする –