【问题标题】:How to run a sequelize query in the console?如何在控制台中运行 sequelize 查询?
【发布时间】:2018-04-24 17:14:25
【问题描述】:

当我在调试会话期间在控制台中运行 sequelize 查询时,返回的是一个未解决的承诺。但是我怎样才能立即获得该查询/承诺的结果?

到目前为止我的做法:

Author.findOne({})
      .then(function(error, result){
               debugger;
               //now I can work with the outcome in the console
            })

这种方法非常耗时,查询中的简单更改将需要重新运行整个调试会话才能看到新的结果。

【问题讨论】:

  • 我认为我会采取的方法是针对它编写测试。这样您就可以一个接一个地快速运行测试,而您现在正在做的事情不会那么耗时。

标签: sequelize.js


【解决方案1】:

尽管 Node 在可能的情况下将操作卸载到操作系统,并且可能有多个线程在后台运行,但 JavaScript 只有一个执行上下文/一个事件循环。一旦你遇到断点,事件循环将不会被处理,直到你让出控制权。因此,不会处理任何异步 API 操作。要获得 sequelize 查询的结果,您必须恢复执行。

除了使用调试器之外,您还可以考虑使用 REPL 方法。运行 node --inspect-brk 并在 Chrome 开发工具中检查等待节点运行时(在 chrome://inspect 下列出)。现在初始化 sequelize,连接到数据库,加载 Author 模型(或在您将使用 --inspect 运行的设置脚本中执行此操作),然后评估以下内容:

await Author.findOne({})

您可以在控制台中检查生成的对象,将其存储在全局变量中(右键单击评估的对象 -> 存储为全局变量),将全局存储的变量字符串化/复制到剪贴板(copy(JSON.stringify(temp1))) 等。您可以轻松调整并重新运行查询。

【讨论】:

  • 有什么建议吗?会很有帮助的!
猜你喜欢
  • 2011-02-25
  • 2022-10-04
  • 2015-05-09
  • 2014-03-07
  • 1970-01-01
  • 2018-06-23
  • 1970-01-01
  • 2013-11-23
  • 2020-05-24
相关资源
最近更新 更多