javascript - Node js 和 mongo , pre, post hook 中间件不在 findByIdAndUpdate 上执行
问题描述
我有一个名为 vehicle 的模式,我可以在其中添加来自管理员的数据,也可以添加导入 csv 文件的数据。顺便说一句,我正在使用 keystone js。
现在,当我从管理员添加数据时,钩子被触发并命中,但是当我从导入 csv 文件代码中添加数据时,尽管数据被添加到数据库,但钩子没有被命中和触发
我们可以使用 Vehicle.model.findOneAndUpdat 触发预保存挂钩吗?
我的导入 csv 代码片段
exports.import = function (req, res) {
let file = fs.createReadStream(req.files.file.path)
Papa.parse(file, {
header: true,
worker: true,
preview: prev_val,
complete: function (results) {
let vehicles = _.each(results.data, function (value, key) {
let condition = { VIN: value.VIN }
Vehicle.model.findOneAndUpdate(condition, value, { upsert: true, new: true }, function (err, doc) {
}
管理界面
钩
schema.pre('save', function (next) {
console.log("HIT" , hit)
if (this.isNew) {
next()
} else {
console.log("this._original" , this._original)
console.log("this._original1" , this)
this._diff = getDiff(this, this._original)
next()
}
})
解决方案
推荐阅读
- sql - 使用 STRING_AGG 函数时子查询返回多行
- jupyter-notebook - Jupyter 笔记本服务器:限制对选定 IP 的访问
- python - 如何从 django 管理员下载最新上传的文件?
- python - 如何从 Python 中的 WTForm 字段中提取值?
- jenkins - 使用 Jenkins 签出项目时获取远程 repo 'origin' 时出错
- python - 如何在 tkinter 窗口中显示控制台窗口输出结果?
- spring - Spring Cloud Resilience4j Circuitbreaker 未调用回退
- python - 使用 Python 通过子文件夹中的消息保存 Outlook 中的附件
- reactjs - Ag 网格 excel 导出覆盖行号和列标签字体大小
- c++ - 在 OpenGL 窗口内绘制 gnuplot 图