【问题标题】:mongoose limit render issues猫鼬限制渲染问题
【发布时间】:2020-03-07 16:55:10
【问题描述】:

我正在尝试在 EJS 中实现无限滚动,并尝试首先呈现数据库项目,但仅将其限制为 1。所以我在 ejs 中创建了一个测试页面,并且能够以纯文本形式呈现数据库中的第一个项目。

express/mongoose 服务器端:

app.get("/test",(req,res)=>{
  database.find({}, (err, found) => {
    if (!err){
      res.render("test",{
        db           :found,
        logStatus    :true,
      });
    } else {
      console.log(err);
    }
  }).limit(1);
});

EJS:

<boilerplate code for header and navbar>

<p><%=db%></p>

<boilerplate code for footer>

这部分工作,所以我尝试下一步单独加载数据库内容:

express/mongoose 服务器端:

app.get("/test",(req,res)=>{  
  database.find({}, (err, found) => {
    if (!err){
      res.render("test",{
        db           :found,
        link         :found.link,
        name         :found.name,
        price        :found.price,
        logStatus    :true,
      });
    } else {
      console.log(err);
    }
  }).limit(1);
});

EJS 端

<boilerplate code for header and navbar>

<p><%=link%></p>

<boilerplate code for footer>

这不会渲染任何东西,所以我完全不知道为什么。

【问题讨论】:

    标签: express mongoose ejs


    【解决方案1】:

    find() 方法返回一个文档数组,所以found 是一个数组,你不能在上面调用.link。您可以将其更改为found[0].link 或改用findOne() 方法。

    【讨论】:

    • 你可以循环遍历found数组并在你的ejs文件中显示它的每一项。
    • 所以你是说我现在才回来?我希望稍微玩一下限制大小,以显示前十几个项目。
    • 好的太棒了!看起来我像往常一样过度思考语法。我认为我必须对语法进行更多的调整。
    • 好吧,所以我实际上让我的主页从主页开始执行 forEach 循环。另一位开发人员向我介绍了套接字 IO,我现在正在使用它来处理请求。我现在正在尝试在页面上呈现有问题的项目。我在想我可以尝试以某种方式将内容推送到我的 ejs 渲染中,或者我应该尝试其他方法。
    • 什么意思?我不明白什么是“有问题的项目”。
    猜你喜欢
    • 2015-03-08
    • 2021-10-04
    • 2018-03-04
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 2020-06-29
    • 2017-09-26
    • 2015-05-05
    相关资源
    最近更新 更多