node.js - RSocketTcpClient 不是构造函数 - 带有 Rsocket-js 的 NodeJS
问题描述
我想使用 Rsocket 指南中的简单示例在 NodeJs 上运行 Rsocket TCP 客户端(https://rsocket.io/guides/rsocket-js/client/rsocket-tcp-client):
async function createClient(options) {
const client = new RSocketClient({
setup: {
dataMimeType: 'text/plain',
keepAlive: 1000000, // avoid sending during test
lifetime: 100000,
metadataMimeType: 'text/plain',
},
transport: new RSocketTCPClient({
host: options.host,
port: options.port,
}),
});
return await client.connect();
}
async function run() {
const rsocket = await createClient({
host: '127.0.0.1',
port: 9898,
});
}
await run();
但是当我尝试运行应用程序时node app.js
出现错误:
TypeError: RSocketTcpClient is not a constructor
. 我检查了 的实现RSocketTcpClient
,看起来有构造函数:
export class RSocketTcpClient extends RSocketTcpConnection {
constructor(options: net.TcpSocketConnectOpts, encoders?: Encoders<any>);
connect(): void;
}
谁能告诉我出了什么问题?我正在使用简单的 package.json:
{
"name": "rsocket-example",
"private": true,
"description": "RSocket example",
"version": "0.0.27",
"repository": {
"type": "git",
"url": "https://github.com/rsocket/rsocket-js.git"
},
"type": "module",
"dependencies": {
"rsocket-core": "^0.0.27",
"rsocket-flowable": "^0.0.27",
"rsocket-tcp-server": "^0.0.27",
"rsocket-types": "^0.0.27",
"rsocket-websocket-client": "^0.0.27",
"rsocket-websocket-server": "^0.0.27"
}
}
解决方案
此处的源项目rsocket-js似乎配置错误,让类声明的默认导出位于变量下。RSocketTCPClient
default
然后,您的解决方法是在您自己的项目中调整转译器配置,或者仅使用default
导出的对象,如下所示:
// instead of new RSocketTCPClient()
new RSocketTCPClient.default({
host: options.host,
port: options.port,
});
推荐阅读
- c# - 从字段表达式构建 MongoDB 过滤器表达式:`Expression
>` 到`表达式 >` - python - 使用''temp''变量的原因是什么?
- apache - mysql 在 MAMP 上工作时 Apache 服务器未启动。说开发者无法验证
- flutter - 如何更新列表项的单个值而不是整个列表项
- mongodb - 获取嵌套数组的 $size(长度)并计算与父对象上存储值的差异 - 使用聚合
- c# - AutoMapper ValueFactory 在部署到服务器时尝试访问 Value 属性错误并且在执行了几天后正常
- python - 解码错误:标签中的电线类型错误。| 在 Atom+Hydrogen 中导入 tensorflow
- c# - 反应式将多个可观察对象合并为一个带有布尔值的可观察对象
- node.js - 错误:MERN 中的“User.findOne 不是函数”
- java - JavaFX:从另一个类中启动