我知道这可能是一个奇怪的问题,我很抱歉,因为现在。
让我们的形象像这样轻松。
let query = User.findAll({where: {name: 'something'}})
是否有办法允许我访问query
的内容。而内容我指的是使用User.findAll
生成的事实,我并不关心承诺.then()
的结果。
答案 0 :(得分:0)
尝试使用 options.logging 在运行查询时执行的函数,以记录sql。
代码:
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,
},
});
};