2017-06-04 89 views
0

我已經建立了與服務器的羽毛,CLI如何設置arangodb羽毛生成定製服務(發電機羽)

feathers geneate app 

由於是爲Arangodb沒有可用的默認服務,我做的事:

feathers generate service 
> A custom service 

我正在搜索示例/文檔,瞭解如何將自定義服務調用(如創建,查找,獲取等)鏈接到arangodb或任何數據庫。

回答

1

有關如何創建自己的服務的文檔可以找到in the services API documentation

一個集合中存儲數據的ArangoDB服務看起來就像這樣:

class Service { 
    constructor(collection) { 
    this.collection = collection; 
    } 

    create(data) { 
    return this.collection.save(data); 
    } 
} 

而且你會爲findupdatepatchremove實現類似的功能。

現在有不同的方式來初始化數據庫連接和服務。對於一些模式,你可以參考生成器是怎樣建立的MongoDB或貓鼬,爲ArangoDB它可能看起來是這樣的:

const { Database } = require('arangojs'); 

app.set('arangodb', new Database('http://127.0.0.1:8529')); 

db.createDatabase('mydb').then(
() => { 
    db.useDatabase('mydb'); 
    // Initialize the service here 
    app.use('/myservice', new Service(db.collection('people'))); 
    }, 
    err => console.error('Failed to create database:', err) 
); 

現有適配器的代碼,例如feathers-memorymany other database adapters之一也可以是一個很好的參考。

+0

我仍然不明白如何/在哪裏做數據庫的實際調用,並返回結果到Promise 'create(data,params){0} {0} {0} {0} db.query(....) // .then(result)'' ''if(Array.isArray(data)){ return Promise.all(data.map(current => this.create當前))); } return Promise.resolve(data); }'' – Jingle

+0

用生成器生成一個通用服務,並用適當的數據庫調用填充服務類方法。 – Daff

+0

我正在使用通用服務,並且與普通回調''create(data,cb){..... cb(result)}一起工作正常,但是我無法讓它與Promises協同工作。我想我應該在繼續之前閱讀更多關於Promise的內容。至少我現在知道確保db調用進入.class.js文件。謝謝。 – Jingle