Keystonejs Tutorials #6/Creating relationships3
13843 단어 CMS자바스크립트KeystoneJSNode.js
다음 페이지 htps : // 코 m / 혼텐 스즈키 / ms / 8f91 3f0128b6 11cb
Keystonejs의 tutorials에서 배웁니다. (거의 기계 번역입니다)
htps //w w. 케 ys와 네 js. 코 m / 쓰리 아 ls / 레 치온시 ps
다 대다 관계(To-many relationship)
사용자가 여러 작업을 수행할 수 있어야 하는 경우에는 어떻게 됩니까? Keystone은 이것을 쉽게 할 수있는 방법을 제공합니다. User.js의 다음 코드를 살펴보십시오.
/lists/User.js
tasks: {
type: Relationship,
ref: 'Todo.assignee',
many: true,
}
many:true 옵션은 사용자가 작업에 대한 여러 참조를 저장할 수 있음을 나타냅니다.
/lists/Todo.js
assignee: {
type: Relationship,
- ref: 'User.task',
+ ref: 'User.tasks',
}
참고: 필드의 이름을 task에서 tasks로 업데이트하여 관계의 특성을 표시했습니다.
두 개의 task를 등록 할 수있었습니다.
index.js
const { Keystone } = require('@keystonejs/keystone');
const { MongooseAdapter } = require('@keystonejs/adapter-mongoose');
const { PasswordAuthStrategy } = require('@keystonejs/auth-password');
const { GraphQLApp } = require('@keystonejs/app-graphql');
const { AdminUIApp } = require('@keystonejs/app-admin-ui');
const { Text, CalendarDay, Checkbox , Password} = require('@keystonejs/fields');
const TodoSchema = require('./lists/Todo.js');
const UserSchema = require('./lists/User.js');
const keystone = new Keystone({
name: 'New Project 3',
adapter: new MongooseAdapter(),
});
keystone.createList('Todo', TodoSchema);
keystone.createList('User', UserSchema);
const authStrategy = keystone.createAuthStrategy({
type: PasswordAuthStrategy,
list: 'User',
});
module.exports = {
keystone,
apps: [new GraphQLApp(),new AdminUIApp({ enableDefaultRoute: true, authStrategy })],
};
lists/Todo.js
const { CalendarDay, Checkbox, Relationship, Text } = require('@keystonejs/fields');
module.exports = {
fields: {
// existing fields
description: {
type: Text,
isRequired: true,
},
isComplete: {
type: Checkbox,
defaultValue: false,
},
// added fields
deadline: {
type: CalendarDay,
format: 'Do MMMM YYYY',
yearRangeFrom: '2019',
yearRangeTo: '2029',
isRequired: false,
defaultValue: new Date().toISOString('YYYY-MM-DD').substring(0, 10),
},
assignee: {
type: Relationship,
ref: 'User.tasks',
isRequired: true,
},
},
};
lists/User.js
const { Text, Password ,Checkbox,Relationship} = require('@keystonejs/fields');
module.exports = {
fields: {
username: {
type: Text,
isRequired: true,
},
email: {
type: Text,
isUnique: true,
},
isAdmin: {
type: Checkbox
},
password: {
type: Password,
isRequired: true,
},
tasks: {
type: Relationship,
ref: 'Todo.assignee',
many: true,
},
},
};
이전 페이지 htps : // 코 m / 혼텐 스즈키 / ms / 7f306f0d6 베d05 아 dc891
다음 페이지 htps : // 코 m / 혼텐 스즈키 / ms / 8f91 3f0128b6 11cb
Reference
이 문제에 관하여(Keystonejs Tutorials #6/Creating relationships3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/bontensuzuki/items/9982196b4f7956ba0fd9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)