2017-06-04 92 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