CRUD 功能中的更新请求

Update request in CRUD function

我是 Sails 的新手,正在尝试学习 CRUD 函数,以便在 api 的帮助下制作我的第一个 api Ponzi Coder 教程,How do I create a restful json CRUD api in sails from scratch?

对于 更新 请求, 我为我的应用程序尝试了这段代码 "Small",

module.exports = {

    update: function (req, res, next) {
        var criteria = {};
        criteria = _.merge({}, req.params.all(), req.body);
        var id = req.param('id');
        if (!id) {
            return res.badRequest('No id provided.');
        }
        small.update(id, criteria, function (err, small) {
            if (err) return next(err);
            if (small.length == 0) return res.notFound();
            res.json(small);
        });
    }

} 

但我无法理解条件数组和更新函数

的第二个参数的意义和作用
small.update(id, criteria, function (err, small) {...});

我知道标准将指定我们要更新的更改,但是如何?

请有人帮助我更好地理解这一点。

首先,条件是不是数组,而是空对象

根据我在代码中看到的行

条件 = _.merge({}, req.params.all(), req.body);

上述行表示您正在将使用 lodash 作为 URL 和 post 命令主体中的两个参数发送的条件合并到一个对象中。

req.params.all() 为您提供从中剔除的参数集合(按优先顺序):

1.the 路由(例如/post/:id 中的id)。
2.the 请求正文
3.the 查询字符串

根据 Sails Documentation 更新是一个 ORM 命令,它更新数据库中符合指定条件的现有记录。我创建了一个示例示例,其中我从 post 命令的主体中获取 _id。此处的条件是您要为该特定 ID 更新的列。

CRUD.update(id,criteria,function(err,sleep){
       if(sleep.length == 0) return res.badRequest();
       if(err) return res.badRequest(err);
       res.json(sleep);
    });
 },

希望这能回答您的问题。