nameless-js
v0.5.3
Published
Nameless is a utility that allows actions to be dispatched from the client that will trigger server side functionality. Useful for updating data on the server using things like Redux.
Downloads
19
Readme
Nameless JS - Isomorphic Client/Server Communication
Nameless is a utility that tries to make server/client communication easier. Built for isomorphic apps, Nameless dispatches actions from the client and the server the same way. These actions are tied to methods set up server-side. So when actions are dispatched we can interact with databases (or do other async stuff) and send data back to the client.
Nameless was initially built to be used with a Redux app, but you can use it any way you see fit!
npm i --save nameless-js
import namelessClient from 'nameless-js/client';
import namelessServer, { createService } from 'nameless-js/server';
A client side call to the server might look like. If this function is called server side you will get the same results.
nameless.exec('jobs', actions.FILTER_JOBS, { /* filters */ }).then(data => /* do something with data. update store ? */ )));
Getting Started
The first thing you will want to do is get Nameless working with your server
Api
Server
import nameless, { createService } from 'nameless-js/server';
nameless(config = Object, app = Express Object)
Arguments
config
- Object
Object Properties
apiPrefix
- String - The path you want Nameless to use for your API.services
- Array - Array of service objects
app
- Express object - Example
Returns
Object
- An object is returned with two properties commander
and apiPrefix
.
commander
- Objectexec(serviceName = String, actionName = String)
- Promise
apiPrefix
- String - String you specified inconfig
object.
createService(name = String, actions = Object)
name
- String - Name of your service
actions
- Object - An object containing action methods.
[ACTION_METHOD_NAME](payload, resolve, reject, req, res, next)
- Function that will be executed when action correlating to this functions name is executed.
Error Handling On The Server
To return an error from your server-side functions simply reject the promise and pass in an object with the properties code
and message
.
[ACTION_METHOD_NAME](payload, resolve, reject, req, res, next) {
// do something
// ...
// ...
if(error) {
reject({
code: 400,
message: 'Bad request',
});
}
}
Client
import nameless from 'nameless-js';
nameless(apiPrefix = String)
Arguments
apiPrefix
- String - Path specified in server configuration object.
Returns
Object
- An object containing the exec
method
exec(serviceName = String, actionName = String, payload)