如何在控制台中运行sequelize查询?

时间:2017-11-11 16:44:55

标签: sequelize.js

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

到目前为止我的方式:

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

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

1 个答案:

答案 0 :(得分:2)

即使Node在可能的情况下将操作卸载到操作系统,并且可能有多个线程在底层运行,但JavaScript /一个事件循环只有一个执行上下文。一旦达到断点,在产生控制权之前不会处理事件循环。因此,不会处理任何异步API操作。要获得续集查询的结果,必须继续执行。

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

await Author.findOne({})

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