2015-12-29 16 views
5

में बुकशेल्फ़ मॉडल लिखना क्या es6 कक्षाओं का उपयोग करके बुकशेल्फ़ मॉडल लिखने का कोई तरीका है? मैं देख सकता हूं कि बुकशेल्फ़ स्रोत स्वयं es6 में लिखा गया है। लेकिन मेरे सामने आने वाले सभी उदाहरण और स्रोत ईएस 5 में लिखे गए हैं। मैंने इस पर एक विस्तृत github issue देखा जो कहता है कि यह संभव है लेकिन यह कक्षाओं में मॉडलों को लिखने के बारे में कुछ त्रुटियों पर चर्चा करता है। मैं es6 कक्षाओं के साथ एक बुकशेल्फ़ मॉडल कैसे लिखूं और उपयोग करूं?ईएस 6

+1

सवाल का जवाब अभी तक किए जाने की है, वहीं मैं के बाद से खोज की और विशेष रूप से उपयोग किया गया है है [objection.js] (https://github.com/Vincit/objection.js/) जो भी पर आधारित है [knex] (http://knexjs.org)। – Sayem

उत्तर

14

हाँ आप कर सकते हैं!

// 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); 
संबंधित मुद्दे