首页 > 解决方案 > Node.js + Mongoose - 每次都没有获取数据

问题描述

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

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

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

我的下拉菜单(使用 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.jsexpressmongoose

解决方案


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

"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)
    });
})

}


推荐阅读