update接口返回的字段还是有多余?

来源:5-18 书籍修改操作(二)

慕勒8322402

2021-09-06

这个是update点击按钮的方法,传了对应的几个字段

const submit = async () => {
      const res = await book.update({
        id: props.book._id,
        name: editForm.name,
        price: editForm.price,
        author: editForm.author,
        publishDate: editForm.publishDate.valueOf(),
        classify: editForm.classify
      });
      result(res)
        .success(({
          data,
          msg
        }) => {
          context.emit('update', data);
          message.success(msg);
          close();
        });
    };

这个是update的后台接口

router.post('/update', async (ctx) => {
  const {
    id,
    ...others //剩下的属性
  } = ctx.request.body;

  const one = await Book.findOne({
    _id: id
  }).exec();

  if (!one) {
    ctx.body = {
      msg: '没有找到书籍',
      code: 0
    }
    return;
  }

  const newQuery = {};

  Object.entries(others).forEach(([key, value]) => {
   
    if (value) {
      newQuery[key] = value;
    }
  });

  Object.assign(one, newQuery);

  const res = await one.save();

  ctx.body = {
    data: res,
    code: 1,
    msg: '保存成功'
  };

});

但是返回的数据仍然是有多余的meta和__V这些字段?

写回答

1回答

然冬

2021-09-12

 后端代码 

const res = await one.save();

这里查询出来包含,手动剔除掉再响应。

0
1
慕勒8322402
ctx.body = { data: { name: res.name, price: res.price, author: res.author, publishDate: res.publishDate, classify: res.classify, count: res.count }, code: 1, msg: '保存成功' }; 老师,我是这样写的,照着视频里的好像就没有这样处理?所以觉得还是有些奇怪,会不会是自己忽略了什么东西?(笑哭)
2021-09-12
共1条回复

毕设一课通 高效完成毕业设计(选题/毕设/论文/答辩)

为计算机专业大学生解决“毕业难题”

344 学习 · 606 问题

查看课程