在多层猫鼬模式中设置属性
Set properties in multi-level mongoose schema
这是我的模式:
var userschema = new mongoose.Schema({
user: String,
imagen: [{
title: String,
name: String,
path: String,
}]
});
And I'm try this:
usermodel.findOne({ user: req.session.user }, function(err, user){
var img = user.imagen[user.imagen.length];
img.title = req.body.title;
user.save(function(err){
if(err) { throw err; }
});
});
控制台返回TypeError: Cannot set property 'title' of undefined
。我不知道为什么没有定义。我想我必须创建一个新的数组元素,然后设置数组元素的属性,但我不知道怎么做。有什么解决办法吗?
谢谢的!
在任何数组中都没有这样的项:anyArray[anyArray.length]
。我认为你必须使用anyArray[anyArray.length - 1]
这是未定义的,因为您已经离开了user.imagen
数组的末尾。它只有user.imagen.length
个元素,所以用JavaScript的基于0的数组索引,最后一个元素的索引是user.imagen.length-1
。
如果你想添加一个新元素:
usermodel.findOne({ user: req.session.user }, function(err, user){
user.imagen.push({ title: req.body.title });
user.save(function(err){
if(err) { throw err; }
});
});
相关文章:
- Javascript使用变量设置属性
- 如何在自动完成时设置属性标题
- 未捕获的类型错误:无法设置属性'innerHTML'如果为null,则将脚本移动到正文不会;不起作用
- 未捕获的类型错误:无法设置属性'背景'的未定义
- 无法设置属性'innerHTML'在javascript中为null
- Haxe Javascript:在不使用Reflect的情况下按名称获取和设置属性
- Jquery为每个元素设置属性
- 从骨干集合筛选模型,然后为这些模型设置属性
- 我们可以设置属性'id'到不同的'按钮'通过使用javascript或jquery的循环
- 如何在javascript对象中设置属性的类型,就像mongoose模式设计一样
- emscripten+sdl=引发异常:TypeError:无法设置属性'widthNative'的未定
- 未捕获的类型错误:无法设置属性'onclick'为null.已尝试window.onload
- Backbone JS Promises在模型上设置属性之前解析
- Highcharts无法设置属性'的值;要点':对象为null或未定义
- 无法设置属性'round'的未定义
- 通过 Javascript 设置 C# 属性值
- 在 app.locals 上设置属性和调用 app.set() 有什么区别?
- 不引人注目地设置属性后函数失败
- j查询在设置属性后在后续单击时不读取数据属性
- IE错误:无法设置属性'的值;样式':对象为null或未定义