我有一个node.js应用程序,它使用我创建的mongodb数据库。在它中,我有一个简单的集合,名为注释,当我调用db.comments.find({})时,它的内容是{“作者”:"me",“注释”:“这是注释”}。
然而,当我试图访问这个收藏,以显示在我的玉视图,它超时后,难以置信的时间。错误对象的Console.log显示它要么是MongoError,要么是应用程序破坏了连接。我的问题是为什么会发生这种事?循环和连接参数似乎没有错误。下面是我必须连接的东西,存储在app.js中
var app = express();
var mongodb = require('mongodb'),
serverdb = new mongodb.Server('127.0.0.1', 27017, {}),
db = new mongodb.Db('acl', serverdb, {safe:true});
app.use(function(req,res,next){
req.db = db;
next();
});和我在中间件文件中的代码,存储在/routes中的js文件中。
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res) {
var db = req.db;
var collection = db.collection('comments');
collection.find().toArray(function(err, docs) {
console.log("Printing docs from Array");
if (err) {
console.log(err);
} else {
console.log(docs);
}
});
db.close();
});
module.exports = router;发布于 2014-08-09 20:39:08
奇怪的是,替换了这段代码
var mongodb = require('mongodb'),
serverdb = new mongodb.Server('127.0.0.1', 27017, {}),
db = new mongodb.Db('acl', serverdb, {safe:true});有了这个
var db = require("mongojs").connect("localhost:27017/acl", ["comments"]);一切都变了。不要再暂停了。一点推特就能让它返回数据。
https://stackoverflow.com/questions/25213981
复制相似问题