如题,对 nodejs 还不熟悉。按这里的指引,尝试用 dubbo-js 调用 dubbo-samples 的 sayhello 接口。一共两个文件,dubbo-test.ts 的内容如下
`
import { Dubbo } from 'apache-dubbo-consumer'
import { Zk} from 'apache-dubbo-registry'
import {HelloService} from './service'
const dubbo = new Dubbo<typeof HelloService>({
application: {name: 'dubbo-node-bff'}, // 标记调用方,信息存储在注册中心,方便排查问题
registry: Zk({ connect: '192.168.1.122:2181' }), // 以 Zk 作为注册中心,详细的初始化参考 @
apache/dubbo-registry 的 api
services:HelloService, // 代理的服务 // boolean 可选参数 是否开启对 dubbox 的支持
dubboInvokeTimeout:15, // number 可选参数 最大超时时间 默认 5s
// string 可选参数 设置 dubbo 版本
// 设置调用元数据 可选参数
});
//main method
dubbo.service.HelloService.sayHello('dd');
`
service.ts 的内容如下:
`
import { Dubbo, TDubboCallResult } from 'apache-dubbo-consumer'
// 获取更好的代码提示
export interface IHelloService {
sayHello(name: string): TDubboCallResult<string>
}
export const HelloService = (dubbo: Dubbo) =>
dubbo.proxyService<IHelloService>({
dubboInterface: 'org.apache.dubbo.service.HelloService',
methods: {
sayHello(name: string) {
return [name] // 此处为代理方法,不需要具体的实现,我们只需要将参数透传即可,这样 dubbo-consumer 就可以获取完整的服务信息
}
}
})
`
但是运行一直报错:Property 'HelloService' does not exist on type 'TDubboService<(dubbo: Dubbo<Object>) => IHelloService>'.
这是要什么修改呢?希望大家能够多多指点