【发布时间】:2018-01-22 06:06:20
【问题描述】:
我的 JSON 对象中的字段没有被 Mongo 在 api 调用中插入。我想我误解了 JSON 测试数据中的对象需要命名的内容。我已经尝试过非常组合“ToDo”、“todo”等,但无济于事。
我正在尝试这个tutorial for building a MEAN stack app。但是,我已经设法在 Postman 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){
我试过other SO posts,但没有用......
【问题讨论】:
-
你在使用 Express 吗?
标签: node.js mongodb rest mean-stack