README
Fetchy
Isomorphic data fetcher which works evenly on client and server.
Now fetchy supports only browserify and webpack. Bower support for client side is comming soon.
Requirements
- expressjs
- body-parser — for parsing post request params
- axios — for requesting server-side
- Promise — fetchy uses native promise, so you will probably need to install some Promise polyfill for older browsers
Instalation:
npm i --save fetchy
Usage
Server
var Fetchy = require('fetchy'),
fetchy = new Fetchy();
// then you should register fetchy middleware
// by default it handles /_fetchy/:name/:action routes
fetchy.registerFetchyMiddleware(app);
// and now you can register data fetcher
// it MUST return promise
fetchy.registerFetcher({
name: 'test',
actions: {
action1: function (params) {
return new Promise(function (resolve) {
resolve('action 1, ' + params.param1);
});
},
action2: function (params) {
return new Promise(function (resolve) {
resolve('action 2 post, ' + params.param1);
});
}
}
});
// so you can fetch data like this
fetchy.get('test', 'action1', { param1: 'server' }).then(function (data) {
console.log(data);
});
Client
It's very simillar to server side:
var Fetchy = require('fetchy'),
fetchy = new Fetchy();
// You don't need to register fetcher, you can just make a request
fetchy.get('test', 'action1', { param1: 'server' }).then(function (data) {
console.log(data);
});
TODO:
- Test client side
- Configuration for route on client side
- Bower support