gpt4 book ai didi

javascript - Sequelize 在钩子(Hook)中获取请求数据?

转载 作者:行者123 更新时间:2023-11-30 00:18:48 25 4
gpt4 key购买 nike

我正在尝试为我的模型存储一些关于创建、更新、删除调用的日志数据。我想在请求中存储一些来自请求的数据以及一些用户数据(使用 express.js)。

在 Hook 中我有一些用于日志记录的模块。

hooks: {
afterCreate: function (order, options, done) {
// How to get user data stored in express request.

return app.log.set('event', [{message: 'created', data: order, userId: 1}, done]);
}
}
...

该模块只是在表中做记录。然而,这是我遇到问题的 userId 部分。我正在使用 passport 模块并将其存储在请求中,那么如何将用户对象(或与此相关的任何外部对象)放入模型 Hook 中?

我想避免在 Controller 或其他任何地方执行此操作,因为可能有一些脚本或其他命令也可能输入数据。

最佳答案

我也遇到过类似的问题,自己解决如下:

首先:我声明了一个全局(通用)钩子(Hook):

module.exports = sequelize.addHook('beforeCreate',
function(model, options, done) {//hook 2
//handle what you want
//return app.log.set('event', [{message: 'created', data: order, userId: 1}, done]);
});

然后,在调用模型之前,使用调用钩子(Hook)(beforeCreatebeforeBulkUpdate,...)和分配的参数请求

module.exports = {
CreateUser: function(req, res) {
User.beforeCreate(function(model, options, done) {//hook1
model.request = req;
});
User.create({
id: 1,
username: 'thanh9999',
password: '31231233123'
//ex.....
})
.then(function(success) {
//response success
}, function(err) {
//response error
});
}
};

订购 Hook 调用:模型中的 Hook 声明 → Hook 1 → Hook 2`。

此外,您还必须为每个模型声明钩子(Hook)。 See more information here.

关于javascript - Sequelize 在钩子(Hook)中获取请求数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33911452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com