gpt4 book ai didi

node.js - Sequelize - beforeCreate 未被调用

转载 作者:行者123 更新时间:2023-12-03 22:23:46 24 4
gpt4 key购买 nike

我正在尝试在 nodejs 中创建一个带有 sequelize 的用户模型,但似乎我的 beforeCreate 实际上并没有被调用。我查看了互联网上的文档和多个示例,但无法正常工作。

型号代码如下:

"use strict";
const bcrypt = require('bcrypt');
require('dotenv').config()

module.exports = function(sequelize, DataTypes) {
var User = sequelize.define("User", {
username: {
type: DataTypes.STRING,
unique: true,
allowNull: false
},
password: {
type: DataTypes.STRING,
allowNull: false
},
emailAddress: {
type: DataTypes.STRING,
unique: true,
allowNull: false
},
lastLogin: {
type: DataTypes.DATE,
allowNull: true
}
});

function cryptPassword(password, callback) {
bcrypt.genSalt(process.env.SALT_ROUNDS, function(err, salt) {
if (err)
return callback(err);

bcrypt.hash(password, salt, function(err, hash) {
return callback(err, hash);
});
});
};

User.beforeCreate(function(model, options) {
cryptPassword(model.password, function(err, hash) {

model.password = hash;
});
});

return User;
};

最佳答案

你应该在你的模型中定义你的钩子(Hook)

var User = sequelize.define("User", {
username: ...
}, {
hooks: {
beforeCreate: function(){...}
}
});

关于node.js - Sequelize - beforeCreate 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46697608/

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