Release 1.1.0
serializer any data to response
$ npm i egg-serializer --save
// {app_root}/config/plugin.js exports.serializer = { enable: true, package: 'egg-serializer', };
ctx.serialize
ctx.body = ctx.serialize('api.user', user); // with options ctx.body = ctx.serialize('api.search', searchResult, { foo: 'bar' });
module.exports = [ 'name', 'age', ];
// {app_root}/app/serializer/user.js module.exports = app => { return class extends app.Serializer { get fields() { return [ 'name', 'age', // ... and so on ]; } } };
// {app_root}/app/serializer/api/search.js module.exports = app => { return class extends app.Serializer { constructor() { super(); this.fields = [ 'count', 'time', // ... and so on ]; } format(obj, options) { const data = this.pick(obj); data.book = app.serialize('api.book', obj.book); data.user = app.serialize('api.user', obj.user); data.last_editor = app.serialize('api.user', obj.last_editor); data.server_time = Date.now(); if (options.foo === 'bar') { data.foo = 'bar'; } return data; }, } };
// {app_root}/config/config.default.js exports.serializer = { // show `_serializer` property on data showSerializerType: false, };
see config/config.default.js for more detail.
Please open an issue here.
MIT
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
egg-serializer
serializer any data to response
Install
Usage
Example
ctx.serializein ControllerSerializers
Easy way, exports fields
Simple way, only provider fields
Custom way, override format method
Configuration
see config/config.default.js for more detail.
Questions & Suggestions
Please open an issue here.
License
MIT