我正在尝试使用nodejs和socket.io 连接到我的mongodb.我能够连接到数据库,因为我在我的控制台中接受'连接'但在nodejs端,我 - 确实 - 得到
通过mongoose连接到mongodb:// localhost:27017
它立即失败了
process.nextTick(function(){throw err;})^ TypeError:undefined不是showCollections中的函数**
这里是showCollections:
var showCollections = function(db, callback) {
mongoose.connection.db.collectionNames(function(error, names) {
if (error) {
throw new Error(error);
} else {
console.log("=>Listening mongo collections:");
names.map(function(cname) {
mongoose.connection.db.dropCollection(cname.name);
console.log("--»"+cname.name);
});
}
});
}
Run Code Online (Sandbox Code Playgroud)
这是我的数据库文件夹的内容:
_tmp (empty folder)
local.0
local.ns
mongod.lock
Run Code Online (Sandbox Code Playgroud)
我通过键入mongod --dbpath文件夹运行mongodb ,它成功'等待端口27017上的连接'.
另外,来自package.json(npm)的node_modules
"dependencies": {
"express": "^4.9.6",
"socket.io": "latest",
"mongodb": "~2.0",
"mongoose": "*"
}
Run Code Online (Sandbox Code Playgroud)
非常感谢您的帮助...
堆栈跟踪:
> TypeError: undefined is not a function
> …Run Code Online (Sandbox Code Playgroud) 我应该找到存储在mongo数据库中的所有集合.
require('../app/models/schemas'); //loading application schemas
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
var collections = db.collections();
console.log(collections);
Run Code Online (Sandbox Code Playgroud)
这里的集合打印了'json'所有模式的组合数据.
但我想找到存储在mongo测试数据库中的所有集合.如何用猫鼬实现它?