我想使用以下代码连接到tarantool cotainer:
import TarantoolConnection from 'tarantool-driver'
let connection = new TarantoolConnection('192.168.99.100:3301');
connection.ping().then((res) => {
console.log(res);
});
在此之前我开始使用容器:
docker run -p 3301:3301 -d tarantool/tarantool:1.6
但结果我一无所获。
如果我尝试为此空间创建空格或\和索引:
connection.eval("box.schema.space.create('myspace', {if_not_exists=true, temporary=true})").then((res) => {
console.log(res);
});
我收到此错误:
UnhandledPromiseRejectionWarning:未处理的承诺 rejection(拒绝ID:1):错误:此套接字已关闭
或:
UnhandledPromiseRejectionWarning:未处理的承诺 rejection(拒绝id:2):错误:连接将被销毁或 已经被破坏,再创造一个
正如我从错误中看到的那样,所需的套接字已经关闭,但我不明白为什么。
tarantool驱动程序的版本:
"tarantool-driver": "2.0.5",
我该如何解决?
答案 0 :(得分:2)
这里有两个问题:
localhost:3301
而不是192.168.99.100:3301
connection.connect()
或connection.ping()
connection.eval()
醇>
以下是工作代码:
const TarantoolConnection = require('tarantool-driver');
let connection = new TarantoolConnection({port: 3301});
connection.connect().then((res) => {
console.log("Connected: " + res);
connection.ping().then((res) => {
console.log("Pong: " + res);
});
connection.eval("box.schema.space.create('myspace', {if_not_exists=true, temporary=true})").then((res) => {
console.log("Space created");
});
});
以防万一,我使用以下命令启动tarantool docker实例:
$ docker run --rm -p 3301:3301 -t -i tarantool/tarantool:1.6