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

REST

通过services路径的RESTful接口,可以把服务接口暴露出去。

也就是说可以通过HTTP方法来调用服务,

使用

安装这个Provider

$ npm install feathers-rest body-parser

如果想在执行REST handler之前,增加其他的中间件,可以在注册服务前,调用

app.use(middleware)。

// app.js

'use strict';

const feathers = require('feathers');

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

const bodyParser = require('body-parser');

class MessageService {

constructor() {

this.messages = [];

}

find(params) {

return Promise.resolve(this.messages);

}

create(data, params) {

this.messages.push(data);

return Promise.resolve(data);

}

}

const app = feathers()

// Enable the REST provider

.configure(rest())

// Turn on JSON parser for REST services

.use(bodyParser.json())

// Turn on URL-encoded parser for REST services

.use(bodyParser.urlencoded({ extended: true }));

app.use('/messages', new MessageService());

// Log newly created messages on the server

app.service('messages').on('created', message =>

console.log('Created message', message)

);

app.listen(3030);

查询,路由和中间件参数

const feathers = require('feathers');

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

const app = feathers();

app.configure(rest())

.use(function(req, res, next) {

req.feathers.fromMiddleware = 'Hello world';

next();

});

app.use('/users/:userId/messages', {

get(id, params) {

console.log(params.query); // -> ?query

console.log(params.provider); // -> 'rest'

console.log(params.fromMiddleware); // -> 'Hello world'

console.log(params.userId); // will be `1` for GET /users/1/messages

return Promise.resolve({

id,

params,

read: false,

text: `Feathers is great!`,

createdAt: new Date.getTime()

});

}

});

app.listen(3030);

自定义响应格式

默认地,REST回应的格式化器是由中间件来实现,一般返回JSON格式数据。

通过重载res.format来重新格式化res.data,通过中间件可以返回请求。

你可能感兴趣的:(FeathersJS官方文档阅读笔记(六))