【问题标题】:Get JSon not returning posted object获取 JSON 不返回发布的对象
【发布时间】:2019-11-11 16:53:57
【问题描述】:

我正在向 Mongo 发布一个对象并得到它,但它没有返回我发布的内容。我是后端新手,无法弄清楚发生了什么代码都没有错误,所以也许它与服务器?我没有收到任何我要成功添加的错误

http://localhost:4000/todos/add
Post
{
      "todo_description": "My First Todo",
      "todo_responsible": "Sebastian",
      "todo_priority": "Medium",
      "todo_completed": false
}

get http://localhost:4000/todos

[
    {
        "_id": "5d19426d5c6af41120abab1f",
        "__v": 0
    }
]

//this is the function that adds the todo item
todoRoutes.route("/add").post(function(req, res) {
  let todo = new Todo(req.body);
  todo.save()
    .then(todo => {
      res.status(200).json(todo);
    })
    .catch(err => {
      res.status(400).send("adding new todo failed");
    });
});

const mongoose = require("mongoose");
const Schema = mongoose.Schema;

let Todo = new Schema({
  todo_description: {
    type: String
  },
  todo_responsible: {
    type: String
  },
  todo_priority: {
    type: String
  },
  todo_completed: {
    type: Boolean
  }
});

module.exports = mongoose.model("Todo", Todo);

tod​​o 被记录我得到了数据库的信息 我希望这能得到我发布的信息

【问题讨论】:

  • todo变量有2个,一个用来调用.save(),一个用来表示运算结果。你能改变代码并使用不同的变量名吗?
  • 顺便说一句,为什么这个问题与“邮递员”有关?
  • 我用它来发送请求,一秒钟让我试试,但我从教程中复制了代码,它也不起作用,所以我不认为这是语法错误
  • 不,小写的 todo 将新的 Todo 保存在其变量中

标签: mongodb httprequest postman backend


【解决方案1】:

问题是您使用值"todo added successfully" 创建自己的JSON 对象。如果要返回新创建的 todo 对象,请使用下面的代码,

todoRoutes.route("/add").post(function(req, res) {
let todo = new Todo(req.body);
todo.save()
  .then(todo => {
    res.status(200).json(todo); // <--- change to this
  })
  .catch(err => {
    res.status(400).send("adding new todo failed");
  });
});

希望这能解决您的问题

【讨论】:

  • 这个帮助,但不能解决为什么数据没有正确保存在数据库中
  • @TheGreenLightbulb 抱歉,我无法理解您的问题,现在我明白了。你能展示你的 Todo 模型吗?
  • 12月上传的项目做完了,可以贬低吗?
  • 想通了必须在邮递员中将文本更改为 json 应用程序谢谢大家!
猜你喜欢
  • 2015-05-23
  • 2017-08-17
  • 2013-06-06
  • 1970-01-01
  • 2017-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多