如何通过快速路径查找mongo数据并将数据打印到jade模板中

时间:2016-02-29 18:14:22

标签: javascript node.js mongodb express

如何通过快速路线找到mongo data(db.collection_name.find())并将数据打印到玉石模板中。

这是我的快速路线(我使用的是express2.5.8)

    app.get('/showData',function(req,res){
  db.collection('comments',function(err, data){
    if(err){
      throw err;
    }
    else{
      data.find();
      res.render('help', {data: data});
    }
  });
});

通过db.collection不是函数

的错误

2 个答案:

答案 0 :(得分:1)

为了快速入门,您可以先连接到数据库,然后将db存储在变量中:

var MongoClient = require('mongodb').MongoClient;
var database;

// Connection URL 
var url = 'mongodb://localhost:27017/myproject';
// Use connect method to connect to the Server 
MongoClient.connect(url, function(err, db) {
  if (!err) {
  console.log("Connected correctly to server");
  database = db;
  } 
})

app.get('/showData',function(req,res){
  database.collection('comments',function(err, data){
  if(err){
    throw err;
  }
  else {
    data.find();
    res.render('help', {data: data});
  }
});

稍后,您可以将所有数据库连接功能移动到单独的文件中,并在需要时将其需要。

答案 1 :(得分:0)

我在下面找到答案是代码:

控制器:

company.find({}, function(err, companies) {
  if (err){
    callback(err);
  }
  else{
    callback(null, companies);
  }
});

路线:

  app.get('/companies', isLoggedIn,function(req, res) {
    companyCtrl.companyList(function(err, companies){
      res.render('companies',{companies:companies});
    });
  });

玉模板:

each val in companies
   tr                               
      td(data-field="state" data-checkbox="true" ) ID
      td(data-field="id" data-sortable="true")= val.id
      td(data-field="name" data-sortable="true")= val.name

在上面的例子中,我在控制器中使用了.find方法来获取集合中的文档,并将它们发送回具有回调函数的路径,并且jade在前端显示结果