获取Sequelize Promise的内容而不执行它

我知道这可能是一个奇怪的问题,从现在开始我很抱歉。

让我们来像我这样一个容易的东西。

let query = User.findAll({where: {name: 'something'}}) 

有没有一种方法可以让我访问query的内容。 而内容的意思是使用User.findAll生成的事实,我不关心User.findAll .then()的结果。

尝试使用options.logging在运行查询loggingsql时执行的函数。

文档Model.findAll

码:

 const promise = User.findAll({ logging: (query, obj) => { console.log("QUERY: ", query, "\n\nOBJ: ", obj); }, where: { name: 'something', }, }); 

输出:

 QUERY: Executing (default): SELECT `id`, `name` FROM `users` AS `user` WHERE `user`.`name` = `something`; OBJ: { logging: [Function: logging], plain: false, raw: false, showWarnings: false, where: '`user`.`name` = `something`', hooks: true, rejectOnEmpty: false, attributes: [ 'id', 'name' ], tableNames: [ 'users' ], type: 'SELECT', model: user } 

更新:[回复评论]

我不知道什么,但你可以使用这样的事情:

 import DB from 'sequelize-connector'; // this is middleware // app.use(this middleware) export default (req, res) => { const promise = DB.user.findAll({ logging: (query, obj) => { // here all your staff with req or res // get something from req // req.next() // or res.send(something) // or throw new Error ... req.next(); }, where: { id: 1, }, }); };