我在这几天内一直在做一些研究,但在尝试测试我从网络上获得的代码时遇到了困难。
var MongoClient = require('mongodb').MongoClient,
format = require('util').format;
MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {
if (err) {
throw err;
} else {
console.log("successfully connected to the database");
db.collection('chat', function(err, collection) {
collection.find({}, {
tailable: true,
awaitdata: true,
numberOfRetries: -1
})
.sort({
$natural: 1
})
.each(function(err, doc) {
console.log(doc);
})
});
}
db.close();
});

错误是: C:\项目\ node_modules \ MongoDB的\ LIB \ mongo_client.js:406 扔错了 ^ 我错过了任何外部库/参考,因为错误显示" 无法读取属性'找到'未定义的"。
mongodb版本:" 2.0.31"
答案 0 :(得分:5)
您在第一次回调中检查可能的错误,但不是第二次回调。而不是
db.collection('chat', function(err, collection) {
collection.find({}, {...
尝试:
db.collection('chat', function(err, collection) {
if (err) {
throw err;
} else {
collection.find({}, {...
这不会使您的代码段执行您想要的操作,但它会让您找出阻止其工作的错误。
答案 1 :(得分:0)
您没有正确导出收集模块。...
如果假设您的模型类是collection.js,
然后在课程结束时,应该是
module.exports = { Collection}
最终代码如下,
const mongoose = require('mongoose')
var Collection = mongoose.model('Collection', {
a: {type: String},
b: {type: String},
c: {type: Number},
}
module.exports = { Collection}
答案 2 :(得分:0)
您也可以这样:
collection.find((err, data) => {
if (err) {
console.log("An error: ", err);
} else {
console.log("My data", data);
}
});