使用node.js从模板pug获取mongodb中的数据

时间:2017-03-21 18:14:51

标签: javascript node.js mongodb pug

目前我在获取数据时遇到问题。我想从数据库中获取数据并使用pug模板进行打印 这是我的index.js中的代码,我从集合中获取数据并放入数组。

//Printing a lesson
 router.get('/getLesson', function(req,res, next){
     var resultArray = [];
     mongo.connect(url, function(err, db){
         assert.equal(null,err);
         var cursor = db.collection('lesson-data').find();
         cursor.forEach(function(doc, err){
             assert.equal(null, err);
             resultArray.push(doc);
         }, function(){
             db.close();
             res.render('lessons', {item: resultArray});
         });
     });
 });

//Inserting a lesson
router.post('/lessonInsert', function(req,res,next){
    var lesson = {
        topic: req.body.topic,
        description: req.body.description,
        language: req.body.language,
        level: req.body.level
    };

    mongo.connect(url,function(err, db){
        assert.equal(null,err);
        db.collection('lesson-data').insertOne(lesson, function(err, result){
            assert.equal(null, err);
            console.log('Lesson inserted');
            db.close();
        })
    })
});

我试图打印我的阵列。

.container(action='/getLesson')        
  each item in resulArray
    li #{item.topic}: #{item.description}: #{item.language}: #{item.level}

任何提示,帮助?

1 个答案:

答案 0 :(得分:1)

执行以下操作时:

res.render('lessons', {item: resultArray})

您实际上是将名为resultArray的变量item传递给您的pug模板。所以迭代将是:

.container(action='/getLesson')        
  each element in item
    li #{element.topic}: #{element.description}: #{element.language}: #{element.level}