Sequelize create 不是函数?
我正在尝试使用 model.create,它说 model.create 不是一个函数.我四处搜索,似乎找不到任何解决方案.请注意,我通过 babel 在节点中使用 es6 导入/导出.
I am trying to use model.create and it's saying that model.create is not a function. I googled around and couldn't seem to find any rmesolutions. Please note that I'm using es6 imports / exports in node via babel.
model.js
'use strict';
export default (sequelize, DataTypes) => {
let attachments = sequelize.define('attachments', {
type: DataTypes.STRING,
category: DataTypes.STRING,
value: DataTypes.STRING,
}, {});
attachments.associate = (models) => {
};
return attachments;
};
控制器
import attachments from '../../../models/attachments'
import to_attachments from '../../../models/to_attachments'
import AWSService from '../../utils/awsS3Api'
export async function createPhoto(ctx) {
...
try {
let attachment = await attachments.create({
type: 'image',
category: imageCategory,
value: data.location
});
..etc
我做错了什么?
推荐答案
如果通过函数声明模型:
If you declare model via function:
export default (sequelize, DataTypes) => {
...
};
然后你应该用 sequelize.import
const Attachment = sequelize.import('../../../models/attachments')
export async function createPhoto(ctx) {
const attachment = await Attachment.create({
type: 'image',
category: imageCategory,
value: data.location
});
}
附注一些建议
1) 用您处理静态类的大写字母命名模型变量.
1) Name model variables with capital letter you deal with static classes.
const user = await User.findById(123)
const users = await User.findAll({where: {id: [1,2,3]}})
2) 单数不是 Users
而是 User
.
2) Singular not Users
but User
.
相关文章