我怎样才能看到由Sequelize.js生成的SQL?

我想查看发送到PostgreSQL服务器的SQL命令,因为我需要检查它们是否正确。 特别是,我对表创build命令感兴趣。

例如,ActiveRecord(Ruby)将其SQL语句打印到标准输出。 这是可能的与Node.js / ActionHero.js和Sequelize.js以及?

初始化sequelize时,你可以传递一个日志选项,它可以是一个函数,也可以是console.log

var sequelize = new Sequelize('database', 'username', 'password', { logging: console.log logging: function (str) { // do your own logging } }); 

如果您只想查看表创build查询,也可以将日志选项传递给.sync

 sequelize.sync({ logging: console.log }) 

如果你想看一个命令的续集,你可以听它,并附加一个函数来打印SQL。

看看这个例子:

 User.find(1).on('sql', console.log).then(function(user) { // do whatever you want with the user here 

如日志中所述Error: Please note that find* was refactored and uses only one options object from now on. 。 对于最新的sequelize版本,如果你想只有一个命令的结果:

User.findAll({where: {...}, logging: console.log})