[英]nodejs get all collection from mongodb database
我已经定义了与mongo db的简单连接,以将所有保存的记录提取到数据库中,并显示我为空,并且findAll
不起作用:
var Db = require('mongodb').Db;
var Connection = require('mongodb').Connection;
var Server = require('mongodb').Server;
ArticleProvider = function (host, port) {
this.db = new Db('article', new Server(host, port, {auto_reconnect: true}), {safe:false});
this.db.open(function () {
});
};
ArticleProvider.prototype.getCollection = function (callback) {
this.db.collection('article'), function (error, article_collection) {
if (error) callback(error);
else callback(null, article_collection);
}
};
ArticleProvider.prototype.findAll = function(callback) {
this.getCollection(function(error, article_collection) {
if( error ) callback(error)
else {
article_collection.find().toArray(function(error, results) {
if( error ) callback(error)
else callback(null, results)
});
}
});
};
exports.ArticleProvider = ArticleProvider;
为了在article
数据库中获取所有保存的数据,我正在测试日志并从mongo shell中找到所有保存的记录到article
:
> db.article.find()
{ "_id" : ObjectId("55033f527be6c3a7bc7e5b04"), "title" : "Post two", "body" : "Body two" }
{ "_id" : ObjectId("55033f527be6c3a7bc7e5b05"), "title" : "Post three", "body" : "Body three" }
>
在我的nodejs路由中,我为空,我无法从应用程序中获取此记录
我的nodejs服务器:
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('../')(server);
var connect = require('connect');
app.use(connect.logger('dev'));
app.use(connect.json());
app.use(connect.urlencoded());
require('../routes/routes.js')(app);
var port = process.env.PORT || 3000;
server.listen(port, function () {
console.log('Server listening at port %d', port);
});
我的路线内容文件:
var ArticleProvider = require('config/models/connection').ArticleProvider;
var articleProvider = new ArticleProvider('localhost', 27017);
module.exports = function (app) {
app.get('/', function (req, res) {
articleProvider.findAll( function(error,docs){
console.log(docs);
});
res.end();
});
};
对于初学者而言,ArticleProvider原型属性上的#getCollection方法具有语法错误。 您可能会一起摆脱#getCollection,不确定自己在做什么。 我认为您正在尝试仅查询数据库以获取该集合中的所有文章文档? 尝试这个:
ArticleProvider.prototype.findAll = function(callback) {
this.db.collection('article').find({}, function(error, results) {
if (error) {
callback(error);
} else {
callback(null, results);
}
});
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.