【问题标题】:Profiling mongoose methods分析猫鼬方法
【发布时间】:2012-09-01 04:06:22
【问题描述】:

我想查看我所有 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

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

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

对于findByIdremove 等其他方法也是如此,但它很长。并且错误处理仅在我不使用回调时才有效,但我每次都使用它。我的意思是:

Part.on 'error', (err) ->
  console.log "Got an error", err

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

【问题讨论】:

    标签: node.js mongodb coffeescript mongoose


    【解决方案1】:

    您可以通过以下方式在 Mongoose 中 enable debug logging

    mongoose.set('debug', true);
    

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

    【讨论】:

    • 太好了,谢谢!不知道我是怎么想念的。
    【解决方案2】:

    您可以使用 look 模块来分析您的 node.js 应用程序。它基于nodetime,但适用于本地服务器。

    【讨论】:

    • 我猜它不适用于咖啡,抛出一个错误。但是nodetime可以工作,现在我弄清楚了(我几天前安装了它,但找不到任何有关日志记录的信息)
    • 感谢错误报告。我会查一下。您是否尝试使用 nodetime 收集 cpu 配置文件?
    • 有 3 个选项卡:请求 |运营 |错误,它只显示Operations,其中包含从服务器传输到客户端的模板、样式和 js 文件。可能是因为其他信息放在其他文件中。
    • 我刚刚修复了look中的coffescript支持,你可以再试一次。我认为,您需要使用Cpu profiler,而不是Transactionsgyazo.com/884993ba26fe72cecbaabb58a40a1fb8
    • 谢谢,现在可以了。请求的问题可能是因为我在客户端上使用 angularJS。
    猜你喜欢
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 2012-09-20
    • 2021-10-10
    • 2019-03-25
    • 2018-03-19
    • 2017-10-11
    • 1970-01-01
    相关资源
    最近更新 更多