0

在我的回调中,我试图测试我对 Model.find() 的调用是否找到任何结果。record传递给回调的,Model.findOne()null,但这似乎不是Model.find()通常“找到”所有匹配记录的情况。那么,究竟什么是Model.find()通过?

以下是我进行的各种测试,试图确定作为记录传递给回调的内容:

author.model.find({userName: 'nameNotInDB'}, function(err, record)
{
    if(err){console.log(err)
    }else{
        console.log(record); //~> []
        console.log(record == []); //~> false
        console.log(record == null); //~> false
        console.log(record == undefined); //~> false
        console.log(record == ''); //~> true
        console.log(record === ''); //~> false
        console.log(record == false); //~> true
        console.log(record === false); //~> false
    }

});
4

1 回答 1

2
console.log(typeof record === typeof []) // True

您的测试 ( record == []) 失败,因为比较复杂类型(对象和数组)只有在它们引用同一个对象时才会成立。

更新,更好的测试:

console.log(Array.isArray(record)) // True
于 2013-07-28T22:40:19.327 回答