我正在尝试从我的收藏级别中找到单个字段值。但是当我安慰它时,它给出了一个未定义的。我也调试了这行代码,但它在node-inspector中给出了一个错误“Runtime.getProperties failed。内部错误:TypeError:无法读取未定义的属性'getters'”。 我不明白发生了什么以及如何从我的关卡收集字段中获取单个值。 我要求从级别模式,level_num字段
中仅获取单个值1)。这是我的节点js
this.levelChange = function(req, res, next){
try{
var query = {age:5};
QuizLevel.find(query).exec(function(err, result){
if(err) return next(err);
var a = result.min_score;
console.log(a);
res.send(a);
});
}catch(err){
console.log("You have error in you code");
return next(err);
}
};
2)。这是我的关卡模式
{
//_id:{type:String},
age:{type:Number},
level_num:{type:Number},
min_score:{type:Number},
max_questions:{type:Number}
}
3)。控制台输出
undefined
4)。这是我的JSON数据
{
"age":5,
"level_num":1,
"min_score":10,
"max_questions":30
}
{
"age":5,
"level_num":2,
"min_score":12,
"max_questions":33
}
答案 0 :(得分:4)
替换
var a = result.min_score;
与
var a = result[0].min_score;
find返回一个集合。如果您只想要一个记录,请尝试
QuizLevel.findOne(query)
答案 1 :(得分:0)
实际上'find()'返回一个数组而不是一个对象。因此,只需将代码var a = result[0].min_score;
替换为var a = result[0].min_score;
否则,您可以使用以下代码获取年龄= 5
的所有“min_scores”this.levelChange = function(req, res, next){
try {
var query = {age:5};
QuizLevel.find(query,{min_score:1}).exec(function(err, result){
if(err) return next(err);
var a = result;
console.log(a);
res.send(a);
});
}
catch(err){
console.log("You have error in you code");
return next(err);
}
};