
ការបង្កើតគំរូទិន្នន័យ (data modeling) គឺជាបង្កើតតារាងឬបណ្តុំទិន្នន័យផ្សេងៗ ដែលនៅក្នុងនោះមានការតំរៀបទិន្នន័យទៅតាមគំរូនៃសេចក្តីត្រូវការជាក់ស្តែងទាំងឡាយ។ ឧទារណ៍មានដូចជា គំរូទិន្នន័យ (data model) សំរាប់គេហទំព័រសារព័ត៌មាន មានភាពខុសប្លែកគ្នាពីគំរូទិន្នន័យសំរាប់គេហទំព័រលក់ទំនិញ។ ប្រការនេះធ្វើអោយការបង្កើតគំរូទិន្នន័យសំរាប់គេហទំព័រទាំងនោះ ត្រូវធ្វើឡើងតាមរបៀបខុសៗគ្នា។
ដោយឡែក នៅក្នុងកម្មវិធី Keystone របស់យើង ការបង្កើតគំរូទិន្នន័យផ្សេងៗ ត្រូវធ្វើឡើងនៅក្នុងឯកសារនានា ដែលត្រូវស្ថិតនៅក្នុងថតមួយមានឈ្មោះថា models ។ ដូចនេះ មុននឹងបង្កើតគំរូទិន្នន័យណាមួយ យើងចាំបាច់ត្រូវបង្កើតថតមួយមានឈ្មោះថា models នៅក្នុងថតនៃកម្មវិធី keystone របស់យើងជាមុនសិន។

បន្ទាប់មកទៀត កម្មវិធី keystone ទាមទារចាំបាច់អោយយើងត្រូវបង្កើតគំរូទិន្នន័យមួយសំរាប់ចុះឈ្មោះនូវបណ្តាអ្នកប្រើប្រាស់កម្មវិធីគេហទំព័ររបស់យើងទាំងឡាយ ដើម្បីចុះផ្សាយព័ត៌មានឬបញ្ចូលទិន្នន័យទៅក្នុងមូលដ្ឋានទិន្នន័យ។ យ៉ាងណាម៉ិញ ឯកសារដែលជាគំរូទិន្នន័យនោះអាចមានឈ្មោះជាអ្វីក៏បានដែរ តែភាគច្រើនគេនិយមដាក់ឈ្មោះអោយឯកសារនោះថាជា User.js ដែលត្រូវស្ថិតនៅក្នុងថត models ។ ជាលទ្ធផល បណ្តាឯកសារនៃកម្មវិធី keystone របស់យើងត្រូវមានទំរង់ដូចខាងក្រោមនេះ៖
|--keystone |--node_modules/ |--models | |--User.js |--package.json |--keystone.jsយ៉ាងណាម៉ិញ ការបង្កើតគំរូទិន្នន័យនៃអ្នកប្រើប្រាស់គេហទំព័ររបស់យើង ត្រូវធ្វើឡើងនៅក្នុងឯកសារ User.js ដោយធ្វើដូចខាងក្រោមនេះ៖
var keystone = require('keystone'); var User = new keystone.List('User'); User.add({ displayName: {type: String }, email: { type: keystone.Field.Types.Email, unique: true }, password: { type: keystone.Field.Types.Password }, }); User.schema.virtual('canAccessKeystone').get(function () { return true; }); User.defaultColumns = 'id, displayName, email'; User.register();នៅលើបន្ទាត់លេខ 3 ការសរសេរថា var User = new keystone.List('User'); គឺជាការបង្កើតវត្ថុឈ្មោះ User មួយដែលមានប្រភេទជាគំរូទិន្នន័យសំរាប់កម្មវិធី keystone ។
នៅលើបន្ទាត់លេខ 5 ការសរសេរថា User.add({ គឺជាការបង្កើតគំរូទិន្នន័យនៃអ្នកប្រើប្រាស់គេហទំព័រ ដែលនៅក្នុងនោះមានទិន្នន័យចំនួន ៣ គឺ ឈ្មោះ អ៊ីមែល និង ពាក្យសំងាត់។
នៅលើបន្ទាត់លេខ 11 ការសរសេរថា User.schema.virtual('canAccessKeystone').get(function () { គឺជាការកំណត់ថា ឈ្មោះនៅក្នុងគំរូទិន្នន័យខាងលើនេះ អាចប្រើប្រាស់គេហទំព័របានដោយសេរី។
នៅលើបន្ទាត់លេខ 15 ការសរសេរថា User.defaultColumns = 'id, displayName, email'; គឺជាការកំណត់យកអត្តសញ្ញាណ ឈ្មោះ និង អ៊ីមែល សំរាប់បង្កាញអ្នកប្រើប្រាស់គេហទំព័រ នៅកន្លែងផ្សេងៗ។
នៅលើបន្ទាត់លេខ 16 ការសរសេរថា User.register(); គឺជាការចុះបញ្ជីជាមួយនឹងកម្មវិធី keystone ដើម្បីកំណត់ថាជាគំរូទិន្នន័យដាច់ដោយឡែកមួយ សំរាប់បណ្តាអ្នកប្រើប្រាស់កម្មវិធីគេហទំព័រនេះ។
ក្រោយពីមានគំរូទិន្នន័យនៃប្រើប្រាស់គេហទំព័ររួចហើយ យើងចាំបាច់ត្រូវបង្កើតអ្នកប្រើប្រាស់គេហទំព័រជាក់ស្តែងណាម្នាក់ជាមុនសិន ដោយធ្វើដូចខាងក្រោមនេះ៖
exports.create = { User: [ { displayName: 'sokhavuth', email: 'vuthdevelop@gmail.com', password: 'admin', }, ], };តាមគោលការណ៍សាស្ត្រា keystone យើងចាំបាច់ត្រូវដាក់ឈ្មោះអោយឯកសារនេះអោយមានទំរង់ជា 0.0.1-first-user.js និងរក្សាវាទុកនៅក្នុងថតមួយមានឈ្មោះថា updates ។
|--keystone |--node_modules/ |--models |--User.js |--updates |--0.0.1-first-user.js |--package.json |--keystone.jsបន្ទាប់មក យើងចាំបាច់ត្រូវបន្ថែមទិន្នន័យមួយចំនួនទៀតចូលទៅក្នុងក្បួនឈ្មោះ keystone.init() នៅក្នងឯកសារនៃកម្មវិធីមេ keystone.js ដោយធ្វើដូចខាងក្រោមនេះ៖
var keystone = require('keystone'); keystone.init({ 'cookie secret': 'secure string goes here', 'name': 'mykeystone', 'user model': 'User', 'auto update': true, 'auth': true, }); keystone.import('models'); keystone.start();លុះមានអ្វីៗគ្រប់សព្វទាំងអស់់ហើយ យើងអាចដំណើរការកម្មវិធី keystone របស់យើងបានដោយសរសេរនៅលើបង្អួចខ្មៅថា node keystone.js ។

នៅពេលដែលកម្មវិធីខាងលើនេះដំណើរការ បើយើងបើក browser ចូលទៅកាន់អាស័យដ្ឋាន http://localhost:3000/keystone យើងនឹងឃើញទំព័រសំរាប់អ្នកប្រើប្រាស់គេហទំព័រដូចខាងក្រោមនេះ៖
