我想使用以下代码连接到tarantool容器:

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);
});

我收到此错误:



要么:



从错误中可以看出,所需的套接字已经关闭,但是我不明白为什么。

tarantool驱动程序版本:



我该如何解决?

最佳答案

您在这里有两个问题:

  • 您应该连接到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
    

    07-25 23:00