应用

GitHub stars npm version Changelog

$ npm install @feathersjs/feathers --save

核心 @feathersjs/feathers 模块提供了初始化新Feathers应用程序实例的功能.它适用于Node, React Native和浏览器(有关更多信息, 请参阅 Feathers 客户端 一章).每个实例都允许注册和检索 钩子, 插件配置以及获取和设置配置选项.初始化的Feathers应用程序称为 app对象.

const feathers = require('@feathersjs/feathers');
const app = feathers();

.use(path, service)

服务 on a given path.

// Add a service.
app.use('/messages', {
  get(id) {
    return Promise.resolve({
      id,
      text: `This is the ${id} message!`
    });
  }
});

注解

path 可以是 / 在根级别注册服务.

.service(path)

给定路径的 服务. Feathers在内部从每个注册的服务创建一个新对象.这意味着 app.service(path) 返回的对象将提供与原始服务对象相同的方法和功能, 但也提供Feathers及其插件添加的功能, 如 事件Feathers功能. path 可以是带或不带前导和斜杠的服务名称.

const messageService = app.service('messages');
messageService.get('test').then(message => console.log(message));
app.use('/my/todos', {
  create(data) {
    return Promise.resolve(data);
  }
});
const todoService = app.service('my/todos');
// todoService is an event emitter
todoService.on('created', todo =>
  console.log('Created todo', todo)
);

.hooks(hooks)

app.hooks(hooks) - > app 允许注册应用程序级别的钩子.有关更多信息, 请参阅 应用程序挂钩.

.publish([event, ] publisher)

app.publish([event, ] publisher) - > app 注册一个全局事件发布者.有关更多信息, 请参阅 出版 一章.

.configure(callback)

app.configure(callback) - > app 运行一个 callback 函数, 它传递了应用程序对象.它用于初始化插件或服务.

function setupService(app) {
  app.use('/todos', todoService);
}
app.configure(setupService);

.listen(port)

app.listen([port]) - > HTTPServer 在给定端口上启动应用程序.它将设置所有已配置的传输(如果有), 然后使用服务器对象运行 app.setup(server) (见下文), 然后返回服务器对象.

只有配置了服务器端传输(REST, Socket.io或Primus)时, listen 才可用.

.setup([server])

app.setup([server]) - > app 用于通过调用each services #setupapp-path 方法(如果可用)来初始化所有服务.它还将使用传递的``server``实例(例如通过 http.createServer)来设置SocketIO(如果已启用)以及可能需要服务器实例的任何其他提供程序.

通常``app.setup`` 将在通过 app.listen([port]) 启动应用程序时自动调用, 但有时需要显式调用它.

.set(name, value)

app.set(name, value) -> appname 设置为 value.

.get(name)

app.get(name) -> value 检索设置 name. 有关服务器端Express设置的更多信息, 请参阅 Express文档.

app.set('port', 3030);

app.listen(app.get('port'));

.on(eventname, listener)

由核心 NodeJS EventEmitter .on 提供.为给定的 eventname 注册一个 listener 方法(function(data){}).

app.on('login', user => console.log('Logged in', user));

.emit(eventname, data)

核心 NodeJS EventEmitter .emit 提供.将事件 eventname 发送给所有事件侦听器.

app.emit('myevent', {
  message: 'Something happened'
});

app.on('myevent', data => console.log('myevent happened', data));

.removeListener(eventname, [ listener ])

核心 NodeJS EventEmitter.removeListener 提供.删除 eventname 的全部或给定侦听器.

.mixins

app.mixins 包含服务混合列表. mixin是一个回调((service, path)=> {}), 它为每个正在注册的服务运行.添加自己的mixins允许为每个注册的服务添加功能.

const feathers = require('@feathersjs/feathers');
const app = feathers();
// Mixins have to be added before registering any services
app.mixins.push((service, path) => {
  service.sayHello = function() {
    return `Hello from service at '${path}'`;
  }
});
app.use('/todos', {
  get(id) {
    return Promise.resolve({ id });
  }
});
app.service('todos').sayHello();
// -> Hello from service at 'todos'

.services

服务 由他们通过 app.use(path, service) 注册的路径键入.这允许返回所有可用服务名称的列表:

const servicePaths = Object.keys(app.services);
servicePaths.forEach(path => {
  const service = app.service(path);
  console.log(path, service);
});

注解

要检索服务, 应该使用 app.service(path) 方法(而不是直接使用 app.services.path).

Feathers Feathers 客户端 对它所连接的服务器一无所知.这意味着 app.services不会 自​​动包含服务器上可用的所有服务.相反, 服务器必须提供其服务列表, 例如, 通过 服务.

app.use('/info', {
  async find() {
    return {
      services: Object.keys(app.services)
    }
  }
});

.defaultService

app.defaultService 可以是一个函数, 如果还没有注册的那个, 则为 app.service(path) 返回一个新标准服务的实例.

const memory = require('feathers-memory');

// For every `path` that doesn't have a service automatically return a new in-memory service
app.defaultService = function(path) {
  return memory();
}

这由 Feathers 客户端 用于自动注册与Feathers服务器通信的客户端服务.

Morty Proxy This is a proxified and sanitized view of the page, visit original site.