Nodejs RESTful API资源正在返回先前的结果(总是落后一步)

时间:2019-07-06 01:24:49

标签: node.js mongoose

从Mongodb数据库请求一个列表,我得到的是我的最新结果,而不是更新的结果。

我尝试过:

  • 从不同客户端(Web浏览器,Postman和vscode的Rest-client)进行呼叫
  • 添加异步/等待
  • res.send而不是res.json
  • 更改猫鼬版本

示例:

exports.get_users_list = (req, res) => {
  User.find().then((users) => {
    console.log(users);
    res.status(200).json(users)
  }).catch(err => res.status(400).json(err));
};

exports.get_users_list = async (req, res) => {
  result = await User.find();
  await console.log(result);
  res.json(result);
};

预计console.log(结果)和res.json(结果)将相似

实际结果是,在res.json(结果)中,数据始终落后一步(就像从缓存或以前的快照中读取数据一样)。

任何建议将不胜感激(:

编码愉快!

3 个答案:

答案 0 :(得分:0)

一个问题是您的console.log显示正确的结果。 如果可以,您可以尝试以下代码

exports.get_users_list = (req, res) => {
  User.find().then((users) => {
    console.log(users);
    res.status(200).send(users)
  }).catch(err => res.status(400).send(err));
};

答案 1 :(得分:0)

尝试添加{new:true}关键字,它将起作用。 例: 等待Complaint.findByIdAndUpdate(complaintid,投诉数据,{new:true});

答案 2 :(得分:0)

这似乎是我的快递设置有误, 使用我的原始方法从头开始快递可以解决问题。 (要快得多,然后为我调试) 再次感谢!