无法使用mongoose获取集合名称

时间:2015-03-18 11:34:47

标签: node.js mongodb coffeescript mongoose

此Ruby代码在"db"内打印集合名称。尝试用咖啡做同样的事情

require 'mongo'
include Mongo
mongocl = MongoClient.new("localhost")
p mongocl["db"].collection_names
mongocl.close

等效的coffeescript代码(不确定)。

mongoose = require 'mongoose'
mongoose.connect 'localhost/db'
mongoose.connection.on 'open', (err) ->
  mongoose.connection.db.collectionNames (err, data) ->
    console.log data
    return 
mongoose.connection.close()

有人可以指出这个中的错误吗? 我使用的是最新的mongoose@3.8.x

1 个答案:

答案 0 :(得分:2)

问题是您在open事件处理程序有机会执行之前关闭了连接。

close()来电转移到传递给collectionNames的回调中:

mongoose = require 'mongoose'
mongoose.connect 'localhost/db'
mongoose.connection.on 'open', (err) ->
  mongoose.connection.db.collectionNames (err, data) ->
    console.log data
    mongoose.connection.close()