@betit/orion
Version:
Pluggable microservice framework
66 lines (52 loc) • 1.41 kB
JavaScript
const orion = require('..');
var codecArg = process.argv[2];
if (!codecArg) {
console.log('Usage: reqres <codec>');
process.exit();
}
transport = new orion.NatsTransport();
switch (codecArg) {
case 'msgp':
case 'msgpack':
codecArg = 'MessagePack';
codec = new orion.MsgPackCodec();
break;
case 'json':
default:
codecArg = 'JSON';
codec = new orion.JsonCodec();
}
const service = new orion.Service('demo', {
transport: transport,
codec: codec
});
const client = new orion.Client({
service: 'demo',
transport: transport,
codec: codec
});
console.log();
console.log(' transport:', 'NATS');
console.log(' codec:', codecArg);
service.handle('time', (req, reply) => {
reply(null, new Date());
});
service.handle('add', (req, reply) => {
reply(new Error('too easy'), parseInt(req.params.a) + parseInt(req.params.b));
});
service.listen(() => {
console.log();
console.log(` service: ${service}`);
client.call('time', (err, res) => {
console.log();
console.log(' error:', err);
console.log(' result:', res);
client.call('add', { a: 3, b: 2 }, (err, res) => {
console.log();
console.log(' error:', err);
console.log(' result:', res);
client.close();
service.close();
});
});
});