Ich habe versucht, meinen Code zu aktualisieren, um die neuesten Upgrades von Sequelize zu unterstützen. Ich verwendeSequelize v4 | Instanzmethoden funktionieren nicht
Sequelize: 4.2.0
Knoten: 7.10.0
NPM: 5.0.3
Das Problem
Ich kann das Benutzermodell nicht korrekt einstellen. Ich habe einige Instanzmethoden implementiert, die scheinbar nicht funktionieren. Die Klasse darf nicht ordnungsgemäß instanziiert werden.
user.js
module.exports = (sequelize, DataTypes) => {
var User = sequelize.define('user', {
attributes ....
}, {
hooks: {
afterCreate(user, options) {
user.testFunction();
}
}
});
// Instance methods
User.prototype.testFunction =() => {
this.firstName = "John";
}
// Class methods
User.anotherTestFunction =() => {
User.findOne().then(() => doSomething());
}
return User;
}
index.js
var sequelize;
sequelize = new Sequelize(config.DATABASE_URL);
db.User = sequelize.import(__dirname + '/user.js');
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;
usersController.js
var db = require('../path/to/db');
function create_post_function = (req, res) => {
var body = getBody();
db.User.create(body).then(user => respondSuccess());
}
Nun, alles in diesem ex reichlich funktioniert perfekt außer der Instanz-Methode !!!
Ich bekomme ständig TypeError: Cannot set property 'firstName' of undefined
Aus irgendeinem Grund ist es nicht die Instanz Methode zum sequelize Modell anwenden. Sehr seltsam, aber ich mache wahrscheinlich etwas, das merkwürdig falsch ist und es nicht sieht.
Wirklich zu schätzen jede Hilfe!
Mein Gott. Du bist der Mann. Vielen Dank. – user3386826