0
NodeJS、Express、SequelizeおよびPostgreSQLを使用しています。Sequelizeを使用して多対多リレーションシップの新しいインスタンスを作成する
私には2つのモデルがあります。 「ユーザ」モデルと「ソーシャル」モデル。私は多対多の関係が必要なので、ユーザーは多くの社会を持ち、社会は多くのユーザーを持つことができます。
これはこれまでのコードです。私は、 "belongsToMany"が新しいJoinテーブルを作成することを理解しています。
モデル/ user.jsの:
'use strict';
module.exports = function(sequelize, DataTypes) {
var User = sequelize.define('User', {
username: DataTypes.STRING
}, {
classMethods: {
associate: function(models) {
User.belongsToMany(models.Social, {through: 'User_Social', foreignKey: 'User_rowId'})
}
}
});
return User;
};
モデル/ social.js:
'use strict';
module.exports = function(sequelize, DataTypes) {
var Social = sequelize.define('Social', {
title: DataTypes.STRING,
description: DataTypes.TEXT
}, {
classMethods: {
associate: function(models) {
Social.belongsToMany(models.User, {through: 'User_Social', foreignKey: 'Social_rowId'})
}
}
});
return Social;
};
ルート/ users.js
router.post('/:UserId/socials', function(req, res) {
userPromise = models.User.findById(req.params.UserId)
userPromise.then(function(user) {
models.Social.create({
title: req.body.title,
description: req.body.description
})
.then(function (social) {
user.addSocials([social, social.id])
})
.then(function() {
res.redirect('/');
});
})
});
私は新しい社会を作成しようとすると、私のウェブサイト上のフォームを使用して、これはコンソールに表示されるエラーです:
Unhandled rejection SequelizeUniqueConstraintError: Validation error
at Query.formatError (meetup-app/node_modules/sequelize/lib/dialects/postgres/query.js:326:16)
at null.<anonymous> (meetup-app/node_modules/sequelize/lib/dialects/postgres/query.js:88:19)
at emitOne (events.js:77:13)
at emit (events.js:169:7)
at Query.handleError (meetup-app/node_modules/pg/lib/query.js:131:8)
at null.<anonymous> (meetup-app/node_modules/pg/lib/client.js:180:26)
at emitOne (events.js:77:13)
at emit (events.js:169:7)
at Socket.<anonymous> (meetup-app/node_modules/pg/lib/connection.js:121:12)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at readableAddChunk (_stream_readable.js:146:16)
at Socket.Readable.push (_stream_readable.js:110:10)
at TCP.onread (net.js:523:20)
何か助けていただければ幸いです!
routes/users.jsのどこでエラーが発生したか分からなかったので、これは良い質問ではありません – jjbskir
私はすべてのコードを見ていませんでしたが、ここではuser.addSocials([social、social.id])かもしれませんuser.addSocials(ソーシャル) –