Вашему вниманию представляю модуль для работы с postgreSQL базами данных. Модуль реализован с использованием механизма серверных зависимостей. При разработке используется npm пакет pg.
Возможности модуля
- Подключение осуществляется по connection string, указывается в настройках модуля
 
- Создание простых таблиц, с указанием полей, типа полей и опций (not null, default, etc.)
 
- Выполнение запросов и вывод результата в виде JSON-объекта
 
Реализация
Данный виджет показывает работу с серверными зависимостями. Чтобы их использовать, необходимо найти подходящий npm пакет на просторах Интернета. На текущий момент платформа поддерживает работу с пакетами CommonJS. Далее, необходимо установить docker и воспользоваться скриптом, приведенном в справке для создания архива.
После получения архива, его необходимо использовать внутри виджета. Подгружаем архив на вкладке Файлы и в сценариях на стороне сервера объявляем импорт пакета:
	Код:
	
import * as pg from 'pg'
 После объявляем необходимые нам функции, "собираем" внешний вид виджета, выполняем low-code часть работ. Привожу листинг функций, которые используются в модуле:
	Код:
	
async function query(): Promise<void> {
    // Выполняем подключение к базе данных
    const client = new pg.Client({
        connectionString: Namespace.params.data.connection_string,
    })
    await client.connect()
    // Выполняем запрос к базе данных
    const res = await client.query({text: Context.data.query_input})
    // Выводим различные сообщения об успехе для разных видов команд
    switch(res.command) {
        case 'INSERT':
            Context.data.result = 'Data inserted!'
            break
        case 'SELECT':
            Context.data.result = JSON.stringify(res.rows)
            break
        default:
            Context.data.result = 'ok'
            break
    }
    // Закрываем подключение к базе данных
    await client.end()
}
async function createTable(): Promise<void> {
    let fields_string: string = ''
    // Собираем в строку описание полей в соответствии с синтаксисом SQL
    if(Context.data.table_fields && Context.data.table_fields.length > 0){
        for(const item of Context.data.table_fields){
            let options: string = ''
            item.options ? options = item.options : options = ''
            fields_string += `${item.field_name} ${item.field_data_type} ${options}, `
        }
    }
    // Убираем последний пробел и запятую в списке с описанием полей
    const prepared_string = `CREATE TABLE ${Context.data.table_name} (${fields_string.substring(0, fields_string.length-2)})`
    // Выполняем подключение к базе данных
    const client = new pg.Client({
        connectionString: Namespace.params.data.connection_string,
    })
    await client.connect()
    // Отправляем запрос в базу данных и выводим сообщение об успехе
    const res = await client.query(prepared_string)
    Context.data.result = `${res.command} table ${Context.data.table_name}!`
    // Закрываем подключение к базе данных
    await client.end()
}
 С полной документацией по пакету можно ознакомиться здесь.