这是我的问题。
我在nodejs中创建一个Api休息,我管理我的数据库。我有3个表:投注,用户和用户投注(这一个链接与用户下注)。
我的问题是当我使用Sequelize来做这件事。在我的网页上,它是一个Angular2应用程序,我想创建一个新的赌注,所以当我填写处方集时,我通过post方法将所有数据发送到服务器。问题从这里开始,因为我想在bets表中添加(这不是问题)并在bets-users中添加引用。
示例:
用户A创建新的投注,因此当他点击创建时,他会发送一个包含标题,成本和收入的投注数据。在服务器端,查询运行正常,但我想要的是,当我在投注表中插入赌注时,我想在bet-users中添加id_bet和id_user,因为我想链接添加投注的用户用他创造的赌注。
我不知道我是否解释好。
这是我的代码:
这是投注模型。
module.exports = (sequelize, Sequelize) => {
const Bet = sequelize.define('apuestas', {
id: {
type: Sequelize.INTEGER,
autoIncrement: true,
primaryKey: true
},
titulo: {
type: Sequelize.STRING
},
coste: Sequelize.INTEGER,
beneficio: Sequelize.INTEGER
}, {
updatedAt: false,
classMethods: {
associate: (models) => {
Bet.belongsTo(models['usuarios_apuestas'], {
foreignKey: 'id',
targetKey: 'id_apuesta'
});
}
},
freezeTableName: true
});
return Bet;
};
我有一个控制器:
createBet(req, res) {
return this.service.create(this.mapper.inputUpdate(req.body))
.then(this.mapper.outputGet.bind(this.mapper, req.body))
.then(res.json.bind(res)).catch(res.send.bind(res));
}
这是映射器:
inputUpdate(inputBet) {
return {
titulo: inputBet.titulo,
coste: inputBet.coste,
beneficio: inputBet.beneficio
};
}
服务:
create(model) {
return this.db.create(model);
}
所有这些方法在不同的文件中是分开的。
总结一下,当我添加一个新的赌注时,我想要的是我想在赌注用户中添加用户之间的关系并保存他的ID。
bets-user表有3列:id,id_bet,id_user。
现在我可以找到用户使用他的id_user参与的所有赌注。
我不知道我是否需要解释更多我的问题,或者你是否理解它。
titulo = title
coste = cost
beneficio = earnings