2015-12-29 16 views
5

es6 sınıflarını kullanarak kitap rafı modeli yazmanın bir yolu var mı? Kitaplık kaynağının es6'da yazıldığını görebiliyorum. Fakat karşılaştığım tüm örnekler ve kaynaklar es5'te yazılmıştır. Bunun mümkün olduğunu belirten ayrıntılı bir github issue gördüm, ancak çoğunlukla sınıflardaki modellerin yazılmasıyla ilgili birkaç hata tartışılıyor. Es6 sınıflarıyla bir kitaplık modelini nasıl yazabilirim?es6 sınıflarında kitaplık modelleri yazma

+1

, keşfedilip münhasıran kullanılarak beri var [objection.js] (https://github.com/Vincit/objection.js/) ayrıca kapalı dayandığı [diz] (http://knexjs.org). – Sayem

cevap

14

Evet yapabilirsin! soru henüz cevaplanması gereken iken

// database.js 
import config from '../../knexfile'; 
import knex from 'knex'; 
import bookshelf from 'bookshelf'; 

const Bookshelf = bookshelf(knex(config[process.env.NODE_ENV || 'development'])); 

Bookshelf.plugin('registry'); // Resolve circular dependencies with relations 
Bookshelf.plugin('visibility'); 

export default Bookshelf; 


// Administers.js 
import Bookshelf from '../database' 
import { createValidatorPromise as createValidator, required, email as isEmail } from '../../utils/validation'; 
import { User, Organization } from '../'; 
import { BasicAdministersView, DetailedAdministersView } from '../../views/index'; 

class Administers extends Bookshelf.Model { 

    get tableName() { return 'administers'; } 

    get hasTimestamps() { return true; } 

    view(name){ 
    return new ({ 
     basic: BasicAdministersView, 
     detailed: DetailedAdministersView 
    }[name])(this); 
    } 

    user() { 
    console.log(User); 
    return this.belongsTo('User', 'user_id'); 
    } 

    organization() { 
    return this.belongsTo('Organization', 'organization_id'); 
    } 
} 

export default Bookshelf.model('Administers', Administers);