sofastack / sofa-rpc-node

SOFARPC Node is a high-performance, high-extensibility, production-level Nodejs RPC framework.
MIT License
612 stars 64 forks source link

feat: rpc client support middleware #36

Closed gxcsoccer closed 5 years ago

gxcsoccer commented 5 years ago
const client = new RpcClient({ ... });

client.use(async function(ctx, next) {
  try {
    await next();
  } catch (err) {
    assert(err.name === 'RpcNoProviderError');
    ctx.body = 'empty';
  }
});

const consumer = client.createConsumer({
  interfaceName: 'com.alipay.sofa.rpc.test.ProtoService',
  targetAppName: 'pb',
});
await consumer.ready();

const result = await consumer.invoke('echoObj', [{
  name: 'Peter',
  group: 'A',
}]);
assert(result === 'empty');
codecov[bot] commented 5 years ago

Codecov Report

Merging #36 into master will increase coverage by 0.01%. The diff coverage is 100%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #36      +/-   ##
==========================================
+ Coverage   98.63%   98.65%   +0.01%     
==========================================
  Files          38       38              
  Lines        1837     1859      +22     
==========================================
+ Hits         1812     1834      +22     
  Misses         25       25
Impacted Files Coverage Δ
lib/client/consumer.js 100% <100%> (ø) :arrow_up:
lib/client/client.js 100% <100%> (ø) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 5081e81...b6f0159. Read the comment docs.

gxcsoccer commented 5 years ago

1.9.0