Mongoose,Socket.IO - 如果结果为空,则无法获取打印空字符串

时间:2018-04-09 22:58:15

标签: javascript node.js mongoose socket.io

我有一个使用socket.io和mongoose的过滤器。如果在查询时没有返回结果,我会尝试打印出来但是它不起作用。

Restaurant.find({ $text : { $search : query } },
            { score : { $meta: "textScore" } })
            .sort({ score : { $meta : 'textScore' } }).exec(function(err, results) {
            console.log(results)
            if (!results){
                console.log(results)
            }

它将两个空数组打印到控制台。页面完成加载时,第一个空数组由第一个console.log打印。当我单击带有空搜索的过滤器按钮时,将打印出第二个空数组。当我删除第一个console.log时,没有打印出来。永远不会执行if条件中的console.log

我尝试了results == []results == null,但它仍然不起作用。但是,当有结果时,它工作正常。谁能解释为什么会发生这种情况并提出解决方案。谢谢!

1 个答案:

答案 0 :(得分:1)

查找将以数组结果,您应该检查数组长度

results.length > 0