sails.js - How to update a model with an array property in sailsjs waterline -
i have model friends property type of array.
var bcrypt = require('bcrypt'); module.exports = { attributes: { id : { type: 'integer', autoincrement: true }, username : { type : 'string', required : true, unique : true }, email : 'string', firstname : 'string', lastname : 'string', password : 'string', friends : 'array' }, beforecreate: function(values, next) { bcrypt.hash(values.password, 10, function(err, hash) { if (err) { return next(err); } values.password = hash; next(); }); } };
this route method.
addfriend : function (req, res) { user.findone({username : req.session.user.username}).exec(function (err, user) { if(!user.friends)user.friends = []; user.friends.push(req.param('friend')); user.save(function (err) { console.log(err); }); }); }
i've used user.update(criteria, data) update model, can't update model @ using .save(), doing ...
addfriend : function (req, res) { user.findone({username : req.session.user.username}).exec(function (err, user) { user.firstname = 'nate'; user.save(function (err) { console.log(err); }); }); }
is there other way save without doing model.update, or how can push array using method. i've looked everywhere why can't solve this, , i've used many orm's in node waterline docs show using save on model after finding.
this error on save method
[error: error updating record.]
you combine .findone
, .update
.
addfriend : function (req, res) { user.findone({username : req.session.user.username}).exec(function (err, user) { var friends = user.friends ? user.friends : []; friends.push(req.param('friend')); user.update({username: req.session.user.username}, {friends: newfriends}) .exec(function(err, updateduser) { return res.json(updateduser); }); }); }
Comments
Post a Comment