用户模型:
const User = sequelize.define('user', {
{
id: {
type: INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false,
},
email: {
type: STRING,
unique: true,
allowNull: false,
validate: {
notEmpty: true,
isEmail: true,
},
},
},
})
榜样:
const Role = db.define(
'role',
{
name: {
type: STRING,
unique: true,
allowNull: false,
validate: {
notEmpty: true,
},
},
},
})
Role.associate = ({ User }) => {
Role.belongsTo(User, {
foreignKey: {
name: 'createdBy',
field: 'createdBy',
},
})
}
所以,我需要获得现场的完整用户信息 createdBy
. 一些graphql架构:
extend type Query {
roles(offset: Int, limit: Int): [Role!]
}
type User {
id: Int!
email: EmailAddress!
}
type Role {
id: Int!
name: String!
createdBy: User!
}
我正在尝试创建用户和角色,并将此用户作为创建者:
const testScenario = async ({ DataTable, Role, User }) => {
const kanyeWest = await User.create({
email: 'kanye.west@gmail.com',
})
await Role.create({
name: 'Admin',
createdBy: kanyeWest
}
当我试图得到我的角色时,我得到了一个错误: "message": "Cannot return null for non-nullable field User.id."
```
query Roles {
roles(offset: 0, limit: 5) {
id
name
createdBy {
id
email
}
}
}
但如果我改变了 `createdBy` 在我的架构中 `Int` 我将获取用户id的值
那么,我该怎么修呢?我需要在现场获得完整的用户信息 `createdBy` 当我拿到我的角色列表时
谢谢!
暂无答案!
目前还没有任何答案,快来回答吧!