Mysql Sequelize模型导出一个函数
我定义了这个模型:Mysql Sequelize模型导出一个函数,mysql,node.js,sequelize.js,Mysql,Node.js,Sequelize.js,我定义了这个模型: const Sequelize = require('sequelize'); const db = require("../database/db") var Reparacion = db.sequelize.define('reparaciones', { id: { type: Sequelize.INTEGER, allowNull: false, autoIncrement: true,
const Sequelize = require('sequelize');
const db = require("../database/db")
var Reparacion = db.sequelize.define('reparaciones', {
id: {
type: Sequelize.INTEGER,
allowNull: false,
autoIncrement: true,
primaryKey: true,
},
descripcion: {
type: Sequelize.STRING(255),
allowNull: true
},
fecha_inicio: {
type: Sequelize.DATEONLY,
allowNull: true
},
fecha_fin: {
type: Sequelize.DATEONLY,
allowNull: true
},
},{});
module.exports=Reparacion
在其他模型中,当我在其他模型中定义foreing键时,这些方法有许多和belongsTo不起作用,因为我在函数中调用它们:
const Reparacion = require("./reparacion")
console.log(typeof(Vehiculo))
console.log(typeof(Reparacion))
Vehiculo.hasMany(Reparacion,{foreingKey:"vehiculoId", onDelete: 'cascade', sourceKey:"matricula"})
Reparacion.belongsTo(Vehiculo)
两个控制台日志返回:“函数”
为了正确定义关联,我必须更改什么
编辑
这就是de“Vehiculo”模型:
嗯,预计
typeof vehicleulo
和typeof Reparacion
将返回一个函数
,这是因为每个构造函数或类都是JS中的函数,所以当您为实体创建模型时,它会返回一个函数/构造函数,可以为您创建实体的实例。所以这没有问题
实际上,文档显示了类似的代码,但是如果你调用函数,我会得到一个错误:“TypeError:Vehiculo.hasMany不是函数”你能添加导出和导入的方式吗
Vehiculo
?该代码生成一个名为“vehiculoId”VARCHAR(45)的表,但我不知道为什么这个名称,为什么不使用foreing键
const Sequelize = require('sequelize');
const db = require("../database/db")
var Vehiculo = db.sequelize.define('vehiculos', {
id: {
type: Sequelize.INTEGER,
autoIncrement: true,
primaryKey: true,
allowNull: true
},
matricula: {
type: Sequelize.STRING(45),
allowNull: false,
primaryKey: true,
},
marca: {
type: Sequelize.STRING(50),
allowNull: true
},
modelo: {
type: Sequelize.STRING(50),
allowNull: true
},
anio: {
type: Sequelize.INTEGER,
allowNull: true
},
color: {
type: Sequelize.STRING(20),
allowNull: true
},
puertas: {
type: Sequelize.INTEGER,
allowNull: true
},
motor: {
type: Sequelize.STRING(20),
allowNull: true
},
},{});
const Reparacion = require("./reparacion")
Vehiculo.hasMany(Reparacion,{foreingKey:"vehiculoMatricula", onDelete: 'cascade', sourceKey:"matricula"})
Reparacion.belongsTo(Vehiculo)
module.exports=Vehiculo