无法将 mongodb 文档添加到控制器中的数组中

Having trouble adding mongodb documents into an array in controller

正如标题所说,我正在尝试将 mongodb 中的文档添加到控制器中的数组中。以下代码是我的控制器的样子:

var express = require('express');
var router = express.Router();
var moviesModel = require("../models/movies");

/* GET /movies/ listing. */
router.get('/', function(req, res, next) {
moviesModel.find({}).where('Price').gt(10000).exec(function(err,movies){

    if(err) throw err;
    console.log(movies);
    });
});

module.exports = router;

控制台上方的代码记录了 5 个文档。这些是我要添加到数组中的文档。我的目标是将文档插入数组,然后遍历每个元素并通过视图显示它。我不知道这是否可能。如果您对我应该如何处理此问题有任何建议,请告诉我。任何帮助,将不胜感激。谢谢!

首先,您必须通过 res.render 方法的第二个参数将 movies 传递给视图:

var express = require('express');
var router = express.Router();
var moviesModel = require("../models/movies");

/* GET /movies/ listing. */
router.get('/', function(req, res, next) {
    moviesModel.find({}).where('Price').gt(10000).exec(function(err,movies){    
       if(err) throw err;
       console.log(movies);

       res.render('layout.ejs', {movies: movies});
    });
});

module.exports = router;

第二步是在视图中循环 movies 并以您想要的格式输出,如下所示:

layout.ejs

<!DOCTYPE html>  
<html lang="en">  
  <head>
    <title>My movies</title>    
  </head>
  <body>
    <ul>
       <% for(var i=0; i<movies.length; i++) {%>
          <li><%= movies[i] %></li>
       <% } %>
    </ul>
  </body>
</html>