我的JSON对象中的字段不是由Mongo在api调用中插入的。我想我误解了 JSON 测试数据中的对象需要命名的内容。我已经尝试了"待办事项","待办事项"等的组合,但无济于事。
我正在尝试本教程来构建 MEAN 堆栈应用程序。但是,我已经设法构建了它,在邮递员 POST 测试调用的正文中使用此 JSON 对象
"todo": {
title: "TaskTitle",
description: "TaskDescription",
status: "Not assigned"
}
当我在 Postman 中通过 POST 进行测试时,当我在 Robo 3T 中查看新创建的对象时,只会填充_id
、date
和__v
字段。
我期待看到_id
、date
、__v
、title
、description
和status
填充在Robo 3T中。
我的模型如下所示:
var mongoose = require('mongoose')
var mongoosePaginate = require('mongoose-paginate')
var ToDoSchema = new mongoose.Schema({
title: String,
description: String,
date: Date,
status: String
})
ToDoSchema.plugin(mongoosePaginate)
const ToDo = mongoose.model('Todo', ToDoSchema)
module.exports = ToDo;
并且执行发布本身的控制器将请求正文显示为未定义,即;
exports.createTodo = async function(req, res, next){
// Req.Body contains the form submit values.
console.log(toString(req.body.title));//----shows as [object Undefined] in console
var todo = {
title: req.body.title,
description: req.body.description,
status: req.body.status
}
try{
// Calling the Service function with the new object from the Request Body
var createdTodo = await TodoService.createTodo(todo)
return res.status(201).json({status: 201, data: createdTodo, message: "Succesfully Created ToDo"})
}catch(e){
我已经尝试了其他SO帖子,但无济于事。
这不是有效的 JSON:
"todo": {
title: "TaskTitle",
description: "TaskDescription",
status: "Not assigned"
}
这些是:
{
"todo": {
title: "TaskTitle",
description: "TaskDescription",
status: "Not assigned"
}
}
和
{
title: "TaskTitle",
description: "TaskDescription",
status: "Not assigned"
}
@MondKin非常感谢你坚持我......问题是使用Postman进行测试,并且正文格式为"文本",而不是"JSON(应用程序/json(">
问题已解决...议员!