После завершения курса по MEAN Stack я работаю над созданием собственного веб-приложения - страницы рецептов. Я разработал свои модели, но когда я пытаюсь заполнить базу данных новым рецептом, это просто не сработает. Основная проблема заключается в том, как я хочу хранить ингредиенты, они будут храниться на одной из таблиц, тогда у каждого рецепта есть свой список ингредиентов и количества для каждого. Например, чтобы приготовить тост, скажем, «50 г сливочного масла и 4 ломтика хлеба». Это схема, которую я использую:
var RecipeSchema = Schema({
name: String,
desc: String,
author: { type: Schema.ObjectId, ref: 'User' },
category: { type: Schema.ObjectId, ref: 'Category' },
ingredients: [{ amount: String, ingredient: { type: Schema.ObjectId, ref: 'Ingredient' }}],
steps: [String],
image: String,
thumbnail: String,
portions: Number,
difficulty: Number,
cookingTime: Number,
comment: String
});
Когда я захожу в Почтальон и пытаюсь заполнить запись «Рецепт тоста», у меня появляется следующее:
name:Toast
desc:Toast is a common breakfast staple.
author:5cad791a7b2e651f7803f5de
category:5cb1ff8f484a172984178a97
ingredients:[{"amount": "4 slices", "ingredient": "5cb1ffdb484a172984178a98"}, {"amount": "35 grs.", "ingredient": "5cb2000d484a172984178a99"}]
steps:['Toast the bread in the oven.','Spread some butter on each toast.']
image:'null'
thumbnail:'null'
portions:1
difficulty:1
cookingTime:15
comment:'null'
Но я продолжаю получать ошибку "Cast Array". В чем может быть проблема? Это проблема с моей моделью, с Почтальоном или с тем, как я отправляю Массив?
EDIT:
Очевидно, это была проблема с тем, как я размещал свои массивы в Postman. После нескольких тестов мне удалось загрузить полный рецепт в формате JSON. Структура правильная (но то, что предлагает Хуан, также может быть использовано, чтобы сделать код чище).