有没有比显式赋值更好的方法在 Express 中实现 PUT 方法?

Is there a better way to implement PUT method in Express than explicitly assigning values?

有没有比将请求中的每个值显式分配给数据库加载对象(来自 MongoDB)更好的方法来实现 Express 中的 PUT 方法?

  function put(req, res) {
    const { school } = req;
    school.name = req.body.name;
    school.nature = req.body.nature;
    school.website = req.body.website;
    school.facebookURL = req.body.facebookURL;
    school.instagramURL = req.body.instagramURL;
    ...
    req.school.save((err) => {
      if (err) {
        return res.send(err);
      }
      return res.json(school);
    });
  }

我的文档有很多属性,JSON 会变得很复杂。我对 Express 比较陌生,想知道是否有更优化的技巧。

假设加载的对象(学校)是一个mongodb集合。

您可以使用集合的 update 方法,而无需明确指定要更新的数据。

function put(req, res) {
    const { school } = req;
    school.update({
      _id:ObjectId(req.param.id)
    },
    req.body)
      .then(function (success) {
          res.json();
        })
        .catch(function (error) {
            res.status(404).send(err);
        }); }

ps:目前在移动设备上,因此格式可能很差。

根据@LawrenceCherone 在评论中给我的提示,我想出了一个非常优雅的问题解决方案。我在模型模式中进行验证,所以这里的代码可以简短而有趣!

function put(req, res) {
    const { school } = req;

    Object.assign(school, req.body);

    req.school.save((err) => {
      if (err) {
        return res.send(err);
      }
      return res.json(school);
    });
  }