【发布时间】:2016-12-18 22:09:32
【问题描述】:
我最近不得不将一个使用 ASP.NET Core 1.0 完成大量工作的项目转换为 Node.js。我完全脱离了我的舒适区,对 JavaScript 几乎一无所知,并且我在 ASP 序列化 C# 类的过程中过着美好的生活,而无需我自己做 JSON。 Node 想让我自己做 JSON,但我玩得很不愉快。
这是一款健身应用。您的客户取得了一些进展,包括他们的电梯和其他东西。在 C# 中,它位于 Workouts 对象中,如下所示:
public struct Progress
{
public Workout[] Workouts;
}
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 也许?我在其他几个不同的模式中使用 Workouts 模式,所以我想避免在不同的模式中一次又一次地编写它,而只是调用“进度:锻炼”之类的东西。有什么想法吗?
-
这取决于您是否希望相同的数据包含在不同的模式中,或者您是否只想要相同的结构。例如,给定从
ClientSchema创建的包含client.progress[].workouts子文档的文档,该子文档表示的数据是否只需要可以从该特定客户端文档访问,或者它也需要是子文档在另一个文件(客户或其他)中? -
@JasonCust 我真的很想复制结构。每个客户的进度数据会有所不同。
标签: javascript c# json node.js schema