tinyservice
v0.9.1
Published
Tiny and lightweight nodejs framework for creating microservices via tcp protocol
Downloads
10
Maintainers
Readme
tinyservice
A tiny and lightweight microservice framework, created for nodejs. TinyService uses json-messages to exchange between server and client.
Install
npm install tinyservice --save
Server instance
Server instance of microservice, based on TCP-server.
constructor
const Server = require('tinyservice').Server;
const serverInstance = new Server({
port: 11234
});
Parameters:
{Object} options
- required parameter to pass options to construct Server instance{number} options.port
- required parameter. Port, on which will be listen server
add
Adds handler to listen messages on server Params:
{Object<string, number|string|boolean>} pattern
- pattern to handle messages on server side. If incoming messages matches pattern - handler will be called with this message.{Function} handlerFunction
- function, that will be called if incomingMessage matches pattern. Function must accept two params:{Object} msg
- incoming message, that was received{Function} doneFunction
- function, that must be called after action was ended. Function receives two params - error and outgoing message. Error - if handler fails, Outgoing message - message to send to client as answer. CALL OF doneFunction is required!
Example:
serverInstance.add({
property1: 1,
property2: 2
},
/**
* Handler function
* @param {{}} incomingMessage
* @param {Function} doneFunction
*/
(incomingMessage, doneFunction) => {
//...SOME ACTIONS...
doneFunction(err, outgoingMessage);
}
)
remove
Removes handler by pattern.
{!Object} pattern
- required param. Pattern, on which you want to remove handler[{Function} handler]
- optional parameter. If not passed - all handlers will be removed[{boolean} strictMode = true]
- optional parameter. If passedtrue
- will be removed only actions, that fully matches passed pattern. If passedfalse
- will be removed common patterns.
Example:
server.add({ // will be removed if strict and not strict mode
a: 1,
b: 2
}, () => {});
server.add({ // will be removed in non strict mode in this case
a: 1
}, () => {});
server.remove({
a: 1,
b: 2
}/*, true or false */);
close
Closes server instance and unrefs port
Client instance
const Client = require('tinyservice').Client;
const clientInstance = new Client({
host: '127.0.0.1',
port: 11234
});
act
Emits message and handles answers from server Params:
{!Object} pattern
- required parameter. Pattern to send message to server.{Function} callback
- callback, that will be called, when server message will received by this call. EXAMPLE
serverInstance.add({
a: 1,
b: 2
}, (msg, done) => {
done(null, {
message: 'This message will be received by client!'
})
});
serverInstance.add({
a: 1
}, (msg, done) => {
done(null, {
message: 'This message will be received by client too!!!'
})
});
clientInstance.act({a: 1, b: 2}, (err, msg) => {
//This function will be called two times
//from both handlers on server
})
close
Closes client instance