分析猫鼬方法

zis*_*she 0 mongoose mongodb node.js coffeescript

我想查看所有 mongoose 方法的调用方法日志,如下所示:

# Load Book
LoadBook = (id, cb) ->
  console.log 'loading book...'
  Book.findById id, (err, book) ->
    if err
      console.log err
      throw err
    console.log 'loaded book: ' + book.title
    cb book
Run Code Online (Sandbox Code Playgroud)

我想我可以定义postpre方法是这样的:

BookSchema.pre 'save', (next) ->
  console.log 'loading ' + `model_name(don't know how to get it)` + ' ...'
  next()
Run Code Online (Sandbox Code Playgroud)

与其他方法相同,例如findByIdorremove但它很长。并且错误处理仅在我不使用回调时才有效,但我每次都使用它。我的意思是:

Part.on 'error', (err) ->
  console.log "Got an error", err
Run Code Online (Sandbox Code Playgroud)

我认为有回调时它不起作用,是吗?也许nodejs中有一些通用的分析器?顺便说一下,我正在使用快递。

Joh*_*yHK 5

您可以通过调用在 Mongoose 中启用调试日志记录

mongoose.set('debug', true);
Run Code Online (Sandbox Code Playgroud)

启用该功能后,您将获得通过 Mongoose 进行的每个 MongoDB 操作的日志条目。不确定这是否正是您想要的,但值得一试。