【发布时间】:2017-01-16 14:26:16
【问题描述】:
这里是代码
var mongo = require('mongodb');
var databaseName = 'Starter',
collectionName = 'wines';
var Server = mongo.Server,
Db = mongo.Db,
BSON = mongo.BSONPure;
db = new Db(databaseName, server);
db.open(function(err, db) {
if(!err) {
console.log("Connected to 'winedb' database");
db.collection(collectionName, {strict:true}, function(err, collection) {
if (err) {
console.log("The 'wines' collection doesn't exist. Creating it with sample data...");
populateDB();
}
});
}
});
exports.findById = function(req, res) {
var id = req.params.id;
console.log('Retrieving wine: ' + id);
db.collection(collectionName, function(err, collection) {
collection.findOne({'_id':new BSON.ObjectID(id)}, function(err, item) {
res.send(item);
});
});
};
这些代码基于带有 mongoDB 的 nodejs 的 restful api 示例。
但是,它似乎无法识别函数findOne。有人可以指出问题吗?
错误信息:
TypeError: Cannot read property 'findOne' of undefined
【问题讨论】:
-
您真的在 DB 中看到了
wines集合吗? -
确保始终检查错误。
-
关于错误的另一件事。找不到集合仍然会(至少我上次尝试过这样的事情)返回一个空数组,但没有错误。
-
你用的是哪个版本的mongodb?
-
wines在那里。我就是不能使用 findOne 函数来获取数据