Сохранить идентификатор соединения с mysql



  • Для соединения использую nodejs модуль mysql2
    С ним у меня проблем не возникает, и все запросы на соединение, выборку и изменение данных успешно проходит,
    Но вот что у меня не получается.

    // get the client
    const mysql = require('mysql2');
     
    // Create the connection pool. The pool-specific settings are the defaults
    const pool = mysql.createPool({
      host: 'localhost',
      user: 'root',
      database: 'test',
      waitForConnections: true,
      connectionLimit: 10,
      queueLimit: 0
    });
    [[POOL]] = pool 
    

    я соединяюсь с базой в самом начале скрипта и потом планирую еще не сколько раз по мере выполнения скрипта обращаться к базе, и для этого пытаюсь сохранить идентификатор соединения в BAS переменную
    так вот если я пишу эту строку
    [[POOL]] = pool
    то действие выполнить код nodejs у меня завершается по таймауту.
    Может кто сталкивался с такой проблемой не хотелось бы при каждом запросе устанавливать новое соединение.

    И второй вопрос
    не могу найти где сейчас находится функция onApplicationStart
    в инспекторе функций только 1 функция main
    А хотелось бы как раз вот это соединение устанавливать с самом начале скрипта и что потом я мог к нему из любого потока обратиться.



  • @gomeapat said in Сохранить идентификатор соединения с mysql:

    [[POOL]] = pool

    Сохраняйте в глобальной переменной node. Только в БАС есть особенность, если повторно открыть редакторы ноды, даже пусть и в другом кубике, то процесс ноды умрет вместе с вашей переменной, это неудобно в разработке, но жить можно.

    @gomeapat said in Сохранить идентификатор соединения с mysql:

    в инспекторе функций только 1 функция main

    А вы нажмите создать функцию, там будет подсказка )



  • Спасибо разобрался.
    Пример того как это делаю я.
    Это действие у меня выполянется в функции OnApplicationStart

    const mysql = require("mysql2/promise");
    
    global.data = mysql.createPool({
        host: 'localhost',
        user: 'db_user',
        database: 'db_name',
        password: "db_pass",
        waitForConnections: true,
        connectionLimit: 32,
        queueLimit: 0
    });
    

Log in to reply