FeathersJS官方文檔閱讀筆記(四)

Services

services 是每個Feathers 應用的核心。他們執行應用級別的I/O操作,實現數據進出。

一個service是個簡單的JS對象,提供了下列方法:

find

get

create

update

patch

remove

setup

services可以被當做Express middleware使用:

app.use('/path', serviceObject)

Services通常有三個使用方面

1.方便數據存儲(Data Storage)

這是最常見的方面。它支持的很多數據存儲選項,通過數據庫適配器支持相似的查詢語法。

2.外部API通信(External APIs)

services用來和其他外部API提供者通信。

Feathers-twilio

Feathers-stripe

Feathers-mailgun

3.實時地代理舊式的服務

通過services可以逐步升級舊式的應用來與現代式API通信。通暢分三步實現:

a.把services方法映射到已存在的舊式端點。這可能包含多個services。

b.設置每個services方法,向舊式API發送請求。對于用戶來說,實現了請求代理。

c.更新客戶端應用,來使用Feathers 服務的端點。

獲取服務

可以如下獲取服務對象:

const messages = app.service('messages');

// also works with leading/trailing slashes

const messages = app.service('/messages/');

// Now we can use it on the server

messages.get(1).then(message => console.log(message.text));

服務方法

下面是完整的Feathers服務接口:

const myService = {

find(params [, callback]) {},

get(id, params [, callback]) {},

create(data, params [, callback]) {},

update(id, data, params [, callback]) {},

patch(id, data, params [, callback]) {},

remove(id, params [, callback]) {},

setup(app, path) {}

}

app.use('/my-service', myService);

或者,作為ES6 class:

'use strict';

class MyService {

find(params [, callback]) {}

get(id, params [, callback]) {}

create(data, params [, callback]) {}

update(id, data, params [, callback]) {}

patch(id, data, params [, callback]) {}

remove(id, params [, callback]) {}

setup(app, path) {}

}

app.use('/my-service', new MyService());

service 方法應該返回Promise,并帶有如下參數:

id:resource的唯一標識。

data:resource數據。

params:其他參數。

callback:可選回調。


剩下的是 setup 方法。

這個特殊的方法用來初始化services。注冊服務時,這個方法會自動被調用,來實現一些特殊的初始化。

Events

任何注冊過的服務,會自動被轉化成事件發射器。一旦resource改變,相應的接口方法成功調用。

保護服務方法

不想暴露一些服務的方法,可以使用bundled hook。

擴展或自定義服務

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容