CRUD功能中的更新请求

时间:2015-07-17 10:26:50

标签: arrays api sails.js crud updating

我是 Sails 的新手,并尝试学习 CRUD 函数来制作我的第一个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) {...});

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

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

1 个答案:

答案 0 :(得分:1)

首先标准是不是数组,但它是空对象

截至我在代码中看到的行

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

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

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

1.路线(例如,id / post /:id) 2.请求机构
3.查询字符串

根据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);
    });
 },

希望这能回答你的问题。