使用mongodb with express从数据库中获取数据

时间:2014-07-13 22:21:07

标签: javascript node.js mongodb express

我刚开始使用express,node和mongoDB,我似乎遇到了在node / express中从mongo获取数据的问题。

我有一个名为testdb的数据库,其中有一个集合调用tests,这里是tests的输出

{
    "_id" : ObjectId("5395f91ced382cec1f8d70f1"),
    "name" : "CHATEAU DE SAINT COSME",
    "year" : "2009",
    "grapes" : "Grenache / Syrah",
    "country" : "France",
    "region" : "Southern Rhone",
    "description" : "The aromas of fruit and spice...",
    "picture" : "saint_cosme.jpg"
}
{
        "_id" : ObjectId("5395f91ced382cec1f8d70f2"),
        "name" : "LAN RIOJA CRIANZA",
        "year" : "2006",
        "grapes" : "Tempranillo",
        "country" : "Spain",
        "region" : "Rioja",
        "description" : "A resurgence of interest in boutique vineyards...",
        "picture" : "lan_rioja.jpg"
}
在routes \ index.js中

我有这个

var express = require('express');
var router = express.Router();
var mongo = require('mongodb');
var db = new mongo.Db('testdb', new mongo.Server('localhost',27017),{auto_reconnect:true,safe:false});
var testData = db.collection('tests');

/* GET home page. */
router.get('/', function(req, res) {
    testData.find().toArray(function(e,doc){
        if(e){
            throw e;
        }
        console.log(doc);
    });
    res.render('index', { title: 'Express' ,docs:"is jade cool?"});
});

module.exports = router;

因为它似乎没有调用回调回调(没有执行console.log并且没有抛出错误)。 如果我将res.render放在toArray回调中,我的应用程序会在浏览器中挂起。

因为这是我的第一个快递应用程序,我确定我犯了一个noob错误。 我知道toArray是异步的,但它应该最终被调用(并且终端中应该显示控制台日志或错误) 有谁知道为什么Array不工作?

0 个答案:

没有答案