我的代码有问题,我无法找到它的位置。 我在我的节点服务器上使用Sequelize。 好像我不能让belongsTo协会工作。
这是我从承诺中得到的错误:
[TypeError:对象的属性'setDetails'[对象 SequelizeInstance:car]不是函数]
实际上它的作用是插入详细数据但没有car_id,并且它不会在car table中插入数据。
这就是我所拥有的:
models / detail.js文件:
var Detail = pg.sequelize.define('details', {
color: {
type: pg.Sequelize.STRING,
allowNull: false
}
}, {
timestamps: false,
underscored: true
}
);
module.exports = Detail;
模型/ car.js
var Detail = require('../models/detail');
var Car = pg.sequelize.define('cars', {
id: {
type: pg.Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
title: {
type: pg.Sequelize.STRING,
allowNull: false
}
}, {
underscored: true
}
);
var c = Detail.belongsTo(Car, {
as: 'detail',
foreignKey: 'car_id',
onDelete: 'CASCADE'
});
Car.c = c;
module.exports = Car;
路由器/ car.js
var Car = require('../models/car');
router.post('/add', function(req, res, next) {
var createData = {
title: req.body.title,
detail: {
color: req.body.color
}
};
Car.create(createData, { include: [ Car.c ] })
.then(function(result) {
res.status(200).json(result);
})
.catch(function(err) {
console.log(err);
});
});
module.exports = router;
我已经能够建立一个hasMany关联,但不是这个。
我的代码出了什么问题?
答案 0 :(得分:0)
我已经能够在IRC上得到mickhansen的回答。
mickhansen:"您需要与您查询的一方的关系,以及之后的关系 你从汽车方面创造,你需要汽车 - >详情 。关系"
这很有道理。这里有一个例子: http://docs.sequelizejs.com/en/latest/docs/associations/#foreign-keys_1
希望这有帮助。