我有一个Sails应用程序,它使用MySQL作为数据库(好吧,MySQL和其他人,但问题在于MySQL)。我的问题是在DB表上创建一条记录,但所有单元格都是空的,我不明白为什么!让我分享代码和表定义:
CREATE TABLE `components` (
`id` INT NOT NULL AUTO_INCREMENT,
`column1` VARCHAR(32) NOT NULL,
`column2` VARCHAR(50) NOT NULL,
`group` INT,
`subgroup` INT,
`column3` INT,
PRIMARY KEY (`id`),
FOREIGN KEY (`column1`) REFERENCES `table1`(`recipe_id`),
FOREIGN KEY (`group`) REFERENCES `table_groups`(`id`),
FOREIGN KEY (`subgroup`) REFERENCES `table_groups`(`id`),
FOREIGN KEY (`column3`) REFERENCES `table2`(`id`))
DEFAULT CHARSET=utf8;
Sails模型定义:
module.exports = {
connection: 'mysqlDb',
autoCreatedAt: false,
autoUpdatedAt: false,
column1: {
type: 'string',
required: true
},
column2: {
type: 'string',
required: true
},
group: {
type: 'integer',
required: true
},
subgroup: {
type: 'integer',
required: true
},
column3: {
type: 'integer'
}
};
水线创建查询:
const data = {
column1: '383qa8475dd11231aa682y2728172y12',
column2: 'canvas',
groups: 2,
subgroup: 5,
column3: 1
};
Components.create(data).exec((error, results) => {
if(error) console.error(error);
else console.log('Created!');
});
它不会中断,但MySQL上的记录是空的,为什么插入所有内容空?在INT列中,插入0。
我错过了什么?
谢谢!
答案 0 :(得分:0)
哦,我......我发现了问题。我忘了在模型中将列名称包装在属性键内部,因此模型应该是这样的:
module.exports = {
connection: 'mysqlDb',
autoCreatedAt: false,
autoUpdatedAt: false,
attributes: {
column1: {
type: 'string',
required: true
},
column2: {
type: 'string',
required: true
},
group: {
type: 'integer',
required: true
},
subgroup: {
type: 'integer',
required: true
},
column3: {
type: 'integer'
}
}
};
非常愚蠢的错误,但它花了我几个小时!无论如何,这很愚蠢,但如果有人犯了同样的错误,我会在这里留下我的问题。