我是 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) {...});
我知道标准将指定我们想要更新的更改,但是如何?
有人请帮助我更好地理解这一点。
答案 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);
});
},
希望这能回答你的问题。