- 基於js的node-zookeeper-dubbo 和egg實現遠程鏈接服務
const nzd = require('node-zookeeper-dubbo'); const opt={ application:{name:'dubbo-consumer'},//前端充當dubbo服務的消費者 registry:'****:2181', dubboVer:'****', dependencies:{ //此處的接口也能夠分離出去 直接引入service接口 Foo:{ interface:'cn.wangsr.api.demoService',//後端接口 version:'1.0.0', timeout:5000, methodSignature: {//後端方法區 getUserInfo : (Id) => [ {'$class': 'java.lang.Long', '$': id} ],//參數類型按照java後臺參數類型全類名 } } } } opt.java = require('js-to-java') const Dubbo=new nzd(opt); const Service = require('egg').Service; class TestDubboService extends Service{ async getUserInfo(Id){//此處暴露接口 用於controller層調用 return Dubbo.Foo.getUserInfo(10020)//爲了測試直接在此處帶參 } } module.exports = TestDubboService;
- controller中調用:
async main() { const { ctx } = this; const result = await this.ctx.service.index.getUserInfo();//此處省略參數 由於在前面已經提早輸入 this.ctx.body =result ; }