我正在尝试在主题内添加一系列步骤。但是每次我发布请求时。它只存储一个带有_id的空数组。 这是我的模特:
const mongoose = require('mongoose');
//const Step = require('./Step');
const StepSchema = mongoose.Schema({
title: String,
status: String,
date: {
type: Date,
default: Date.now
}
});
const TopicSchema = mongoose.Schema({
name: String,
description: String,
steps: [StepSchema],
date: {
type: Date,
default: Date.now
}
});
module.exports = mongoose.model('Topic', TopicSchema);
这是我的router.js:
const express = require('express');
const router = express.Router();
const Topic = require('../models/Topic');
router.post('/', async (req, res) => {
const topic = new Topic({
name: req.body.name,
description: req.body.description,
});
topic.steps.push({
title: req.body.title,
status: req.body.status
})
try {
const saveTopic = await topic.save();
res.json(saveTopic);
} catch (err) {
res.json({ message: err });
}
});
module.exports = router;
这是我的邮递员要求:
{
"name": "t",
"description": "y",
"steps": {
"title": "a",
"status": "b"
}
}
谢谢。
答案 0 :(得分:0)
在您的POSTMAN请求中,标题和状态包含在steps
对象中。
您需要这样做:
topic.steps.push({
title: req.body.steps.title,
status: req.body.steps.status
});
代替:
topic.steps.push({
title: req.body.title,
status: req.body.status
});