0
我有一个应用程序正在对服务器进行ajax调用,以便用猫鼬在数据库中保存用户信息。 Ajax调用看起来是这样的:根据情况,是否有办法允许猫鼬字段未定义?
$.ajax({
type: 'GET',
url:"http://localhost:3000/updateuser",
data: {
_id : userID,
userEvents : events,
userGroups : groups,
latitude : position.coords.latitude,
longitude : position.coords.longitude
},
dataType: 'jsonp',
contentType: 'application/json',
crossDomain: true,
success: function(data){
console.log(data);
},
error: function(){
console.log('there was an error');
}
});
远程服务器来保存用户的信息是这样的:
var user = {_id : req.query._id};
var update = { events : req.query.userEvents,
groups : req.query.userGroups,
latitude : req.query.latitude,
longitude : req.query.longitude,
timestamp : thisTime};
locationModel.update(user,update,{multi:true},function(err,numAffected){
console.log(numAffected);
console.log(err);
,我快到的问题是,有时userEvents或群组作为发送一个空的领域。这一切都取决于用户,我不能保证该字段将被填充。如果该字段为空,我从猫鼬出现以下错误:
undefined
{ message: 'Cast to string failed for value "undefined" at path "events"',
name: 'CastError',
type: 'string',
value: undefined,
path: 'events' }
有谁知道是否有针对此问题的解决方法吗?如果我不清楚问题中的任何内容,请让我知道。谢谢。
'events:req.query.userEvents || “”'? – WiredPrairie
如果您很高兴在运行更新时覆盖事件,则只能使用@WiredPrairie解决方案。您应该真正构建您的更新对象以适应从前端传入的数据。 –
这绝对会做到这一点。如果事件不存在,覆盖事件实际上会遵循我的应用程序的逻辑。 @WiredPrairie如果你想提交作为答案,我会给你复选标记。 – user3294779