Node.js 在多个查询中使用mariadb nodeJS连接器

Node.js 在多个查询中使用mariadb nodeJS连接器,node.js,mariadb,Node.js,Mariadb,我有一个运行Node.js的服务器连接到一个MariaDb数据库。我使用的是,它可以很好地用于单个查询。但是,当我尝试执行多个查询时,它会抛出以下错误: { Error: (conn=8439, no: 1064, SQLState: 42000) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax t

我有一个运行Node.js的服务器连接到一个MariaDb数据库。我使用的是,它可以很好地用于单个查询。但是,当我尝试执行多个查询时,它会抛出以下错误:

{ Error: (conn=8439, no: 1064, SQLState: 42000) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT 2' at line 1  
sql: SELECT 1; SELECT 2; - parameters:[]
 at Object.module.exports.createError (\node_modules\mariadb\lib\misc\errors.js:55:10)
 at Packet.readError (\node_modules\mariadb\lib\io\packet.js:506:19)
 at Query.readResponsePacket (\node_modules\mariadb\lib\cmd\resultset.js:47:28)
 at PacketInputStream.receivePacket (\node_modules\mariadb\lib\io\packet-input-stream.js:73:9)
 at PacketInputStream.onData (\node_modules\mariadb\lib\io\packet-input-stream.js:129:20)
 at Socket.emit (events.js:182:13)
 at addChunk (_stream_readable.js:283:12)
 at readableAddChunk (_stream_readable.js:264:11)
 at Socket.Readable.push (_stream_readable.js:219:10)
 at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)
fatal: false,
errno: 1064,
sqlState: '42000',
code: 'ER_PARSE_ERROR' }
我目前使用的测试代码是:

conn = await pool.getConnection({multipleStatements: true});
conn.query({
  multipleStatements: true,
  sql: "SELECT 1; SELECT 2;"
}).then((data: any) => {
  console.log(data);
  conn.end();
});

建议的
multipleStatements
是一个选项,但通过查看,我发现它的唯一位置是在和下。我也注意到了,但这似乎是专门针对大量插入的

有没有一种方法可以使用mariadb connector NodeJ在一个
query
调用中运行多个查询?如果是这样的话,我还能做错什么,只有多语句查询不起作用

版本:
-MariaDb:10.1.34-MariaDb
-Node.js:v10.14.2

-mariadb连接器节点:mariadb@2.0.2-rc

多个状态
是一个不错的选择,但正如@rolandstarke所指出的,这是一个连接选项

在使用创建池时,您可以指定池+连接选项,因为池将处理连接创建。见相关

例如:

const mariadb = require("mariadb");
const pool = mariadb.createPool({ multipleStatements: true });

pool.query("select 1; select 2")
  .then(results => {
    //select 1 results
    console.log(results[0]); //{ '1': 1 }
    //select 2 results
    console.log(results[1]); //{ '2': 2 }
  })
  .catch(err => {
    //handle error
  });

multiplestatement
是一个不错的选择,但正如@rolandstarke所指出的,这是一个连接选项

在使用创建池时,您可以指定池+连接选项,因为池将处理连接创建。见相关

例如:

const mariadb = require("mariadb");
const pool = mariadb.createPool({ multipleStatements: true });

pool.query("select 1; select 2")
  .then(results => {
    //select 1 results
    console.log(results[0]); //{ '1': 1 }
    //select 2 results
    console.log(results[1]); //{ '2': 2 }
  })
  .catch(err => {
    //handle error
  });

multiplestatement
是一个连接选项,而不是我所担心的查询选项。@RolandStarke显然我把这个选项放在了所有地方,除了正确的地方。。。。。。原来它属于
mariadb.createPool
位。如果你想回答,我可以接受。
multipleStatements
是一个连接选项,而不是我担心的查询选项。@RolandStarke显然我把这个选项放在了所有地方,除了正确的地方。。。。。。原来它属于
mariadb.createPool
位。如果你想回答,我可以接受。