【问题标题】:Node.js + Mongoose - Not getting data every timeNode.js + Mongoose - 每次都没有获取数据
【发布时间】:2019-02-21 17:10:23
【问题描述】:

我做了一个下拉菜单,它从我使用猫鼬获得的一些数据中获取链接。

但它并不持久。使用完全相同的代码,我并不总是获得链接数据。

(实际上我所有的东西都是这样,但我的下拉菜单很简单)

我的下拉菜单(使用 EJS 和引导程序制作)

<div class="dropdown-menu" aria-labelledby="navdrop">
                        <% schools.forEach((school) => { %>
                            <a href="/skoler/<%= school.adress.city %>" class="dropdown-item"><%= school.name %></a>
                        <% }); %>
                    </div>

(对不起,上面的格式很糟糕,编辑不让我改进)。

这是我处理我的索引页的路线。

server.get('/', 
    async function(req, res) {
        let schools = await schoolService.getAll();

        res.render('public assets/pages/index', {
            page_title: "Langaming.dk - Index",
            schools: schools
        });
    }
);

这是我的 schoolService.getAll();

"getAll": () => {
    return new Promise(function(resolve, reject){
        School.find({}, function (err, schools) {
            if (err)
                return reject(err)
            else 
                return resolve(schools)
        });
    })
}

我会尝试更好地解释它。当我进入我的页面时,有时会显示链接,有时则不会。 (大多数情况下他们没有)。它始终是相同的代码。

该项目正在运行快速处理路线。

为什么会这样?

【问题讨论】:

    标签: node.js express mongoose


    【解决方案1】:

    可能是由于某种原因您的数据库没有文档(您是否在请求之间清除数据?)并且它不会仅仅因为它而引发错误。

    "getAll": () => {
    return new Promise(function(resolve, reject){
        School.find({}, function (err, schools) {
    
            if (err)
                return reject(err)
            if (!schools) { 
                console.log('there are no documents');
                return reject();
            }
            else 
                resolve(schools)
        });
    })
    

    }

    【讨论】:

    • 我试着看看它是否接收任何学校。然而它根本没有收到任何东西。 (同时我与 MongoDB Compas 连接以检查我的收藏,那里很好而且花花公子。所以我没有从我的收藏中删除任何东西。
    • 为了澄清,我添加了一个 console.log(schools) 来查看我是否收到了任何数据,但它检查为一个像这样的空数组 -> '[ ]' 以及它收到的时间它出来的数据是这样的 -> '[ { object }, { object } ]'。
    • 正如我所害怕的那样......看起来数据库有时没有文档,默认情况下它会返回一个空数组,然后它有并且它正在返回适当的数据然后
    • 我对你的意思有点困惑。我正在观察数据库,而指南针发生此错误并且它可以正常接收文档?
    猜你喜欢
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 2014-08-12
    • 2014-09-28
    相关资源
    最近更新 更多