nodejs + mysql несколько запросов



  • Всем привет, использую npm модуль MySql2 для nodejs
    1 запрос к бд делаю из примера по видео nodejs, все работает.

    await(new Promise((resolve, reject) => {
      connection.query('SELECT token FROM tokens LIMIT 1', function (err, results)   {
      if(err)
      {
        reject(err)
        return
      }
      console.log(results);
      resolve()
      });
    }));
    

    Но нужно сделать 4 таких запроса:
    LOCK TABLES tokens WRITE;
    SELECT token FROM tokens LIMIT 1;
    DELETE FROM tokens LIMIT 1;
    UNLOCK TABLES;
    Как это правильно сделать?
    смотрел примеры в интернете но так и не смог разобраться



  • @vndes43ta попробуй вначале в напрямую выполнить код в БД (например ПХПМАЙАДМИН)



  • я смотрел, запросы рабочие



  • @vndes43ta said in nodejs + mysql несколько запросов:

    Всем привет, использую npm модуль MySql2 для nodejs
    1 запрос к бд делаю из примера по видео nodejs, все работает.

    await(new Promise((resolve, reject) => {
      connection.query('SELECT token FROM tokens LIMIT 1', function (err, results)   {
      if(err)
      {
        reject(err)
        return
      }
      console.log(results);
      resolve()
      });
    }));
    

    Но нужно сделать 4 таких запроса:
    LOCK TABLES tokens WRITE;
    SELECT token FROM tokens LIMIT 1;
    DELETE FROM tokens LIMIT 1;
    UNLOCK TABLES;
    Как это правильно сделать?
    смотрел примеры в интернете но так и не смог разобраться

    А в чём проблема то? У вас ведь правильный код для отправки запроса. Если нужно отправить 4 запроса, отправляйте их скопировав код:

    const mysql = require('mysql2');
    var connectionBD = mysql.createPool({
      connectionLimit : 30,
      host: [[BASE_HOST]],
      port: [[BASE_PORT]],
      user: [[BASE_LOGIN]],
      database: [[BASE_NAME]],
      password: [[BASE_PASSWORD]]
    });
    const connection = connectionBD
    await(new Promise((resolve, reject) => {
      connection.query(
        'LOCK TABLES tokens WRITE',
        function (err, results, fields) {
        if(err){
        reject('Ошибка подключения к базе ' + err)
        return
        }
          resolve()
        }
      );
    
    }));
    
    await(new Promise((resolve, reject) => {
      connection.query(
         'SELECT token FROM tokens LIMIT 1',
        function (err, results, fields) {
        if(err){
        reject('Ошибка подключения к базе ' + err)
        return
        }
          console.log(results);
          resolve()
        }
      );
    
    }));
    
    await(new Promise((resolve, reject) => {
      connection.query(
         'DELETE FROM tokens LIMIT 1',
        function (err, results, fields) {
        if(err){
        reject('Ошибка подключения к базе ' + err)
        return
        }
          resolve()
        }
      );
    
    }));
    
    await(new Promise((resolve, reject) => {
      connection.query(
         'UNLOCK TABLES',
        function (err, results, fields) {
        if(err){
        reject('Ошибка подключения к базе ' + err)
        return
        }
          resolve()
        }
      );
    
    }));
    connectionBD.end()
    

Log in to reply