美文网首页
FeathersJS官方文档阅读笔记(四)

FeathersJS官方文档阅读笔记(四)

作者: hjw2015 | 来源:发表于2016-08-13 13:01 被阅读387次

    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。

    扩展或自定义服务

    相关文章

      网友评论

          本文标题: FeathersJS官方文档阅读笔记(四)

          本文链接:https://www.haomeiwen.com/subject/zbnesttx.html