.save() 不适用于 Sails
.save() doesn't work on Sails
我想向我的一项服务中的所有用户广播通知,通知是用户模型的数组属性。
所以我应该将新通知的对象推送到数据库中的每个用户通知数组。
这是我的代码:
broadcastNotif : function (notif) {
return new Promise(function (resolve, reject) {
User.find().exec(function (err, users) {
if (err) return reject(err);
else {
while (users.length>0) {
var user = users.pop();
if (user.notifications==undefined)
user.notifications=[];
user.notifications.push({
type : notif.type,
title : notif.title,
link : notif.link,
date : notif.date
});
sails.log(user);
user.save(function (err) {
if (err) return reject(err);
})
}
return resolve();
}
})
})
}
sails.log(user)
在控制台中打印正确的对象但是当我检查我的 mongo 数据库时发现那里没有保存任何东西,它们都没有改变。
user.save()
怎么了?!
不幸的是,我发现 sails 在模型中不支持像这样的数组属性:
notifications : [
{
type : {
type : 'string',
defaultsTo : 'general'
},
title : {
type : 'string',
required : true
},
link : {
type : 'string'
},
date : {
type : 'datetime',
defaultsTo: new Date().toISOString()
}
}
]
我被迫将我的通知属性更改为:
notifications : {
type : 'array'
}
并手动检查和验证所有内容:(
我想向我的一项服务中的所有用户广播通知,通知是用户模型的数组属性。 所以我应该将新通知的对象推送到数据库中的每个用户通知数组。 这是我的代码:
broadcastNotif : function (notif) {
return new Promise(function (resolve, reject) {
User.find().exec(function (err, users) {
if (err) return reject(err);
else {
while (users.length>0) {
var user = users.pop();
if (user.notifications==undefined)
user.notifications=[];
user.notifications.push({
type : notif.type,
title : notif.title,
link : notif.link,
date : notif.date
});
sails.log(user);
user.save(function (err) {
if (err) return reject(err);
})
}
return resolve();
}
})
})
}
sails.log(user)
在控制台中打印正确的对象但是当我检查我的 mongo 数据库时发现那里没有保存任何东西,它们都没有改变。
user.save()
怎么了?!
不幸的是,我发现 sails 在模型中不支持像这样的数组属性:
notifications : [
{
type : {
type : 'string',
defaultsTo : 'general'
},
title : {
type : 'string',
required : true
},
link : {
type : 'string'
},
date : {
type : 'datetime',
defaultsTo: new Date().toISOString()
}
}
]
我被迫将我的通知属性更改为:
notifications : {
type : 'array'
}
并手动检查和验证所有内容:(