DevGang
Авторизоваться

Как использовать базу данных MySQL в Total.js с помощью QueryBuilderMySQL?

Total.js, мощный веб-фреймворк для Node.js, упрощает разработку веб-приложений. Интеграция баз данных, таких как MySQL, очень важна для создания динамических приложений. В этом учебном пособии мы рассмотрим, как органично сочетать MySQL с  Total.js с помощью QueryBuilderMySQL. Этот интуитивно понятный инструмент упрощает взаимодействие с базами данных, что делает его идеальным как для начинающих, так и для опытных разработчиков.

Давайте рассмотрим интеграцию MySQL с  Total.js с помощью QueryBuilderMySQL.

1. Предварительные условия

Прежде чем приступить к интеграции MySQL с  Total.js с помощью QueryBuilderMySQL, убедитесь в наличии следующих предварительных условий:

  • Node.js: Убедитесь, что Node.js установлен на вашей системе. Если он еще не установлен, его можно загрузить и установить с официального сайта Node.js.
  • Total.js (версия 4 или более поздняя): Вы можете установить Total.js локально в каталог проекта. Для этого создайте новую папку проекта и перейдите в нее с помощью терминала или командной строки. Затем выполните следующую команду npm внутри каталога проекта для локальной установки Total.js: npm install total4.
  • База данных MySQL: Установите сервер базы данных MySQL и убедитесь, что он работает. Если MySQL еще не установлен, его можно загрузить и установить с официального сайта MySQL.

Наличие Node.js, локальной установки Total.js версии 4 или более поздней, а также работающего сервера баз данных MySQL обеспечивает беспроблемную интеграцию. Теперь вы готовы приступить к настройке QueryBuilderMySQL в вашем приложении Total.js.

2. Создание приложения Total.js

# Open Terminal
cd /path/to/your/totaljs/project

# Navigate to Project Root
touch index.js

# Create index.js
echo "require('total4/debug')({ port: 5000 });" >> index.js

# Add Start Script
node index.js

# Check Output
# The terminal should indicate the server running at http://127.0.0.1:5000/.

3. Настройка QueryBuilderMySQL

QueryBuilder - это универсальный инструмент, обеспечивающий простую реализацию ORM для различных движков баз данных. Он работает как слой абстракции, позволяя загружать существующие реализации QueryBuilder или создавать свои собственные, в зависимости от конкретных требований.

QueryBuilder в общем случае

QueryBuilder включает в себя две основные реализации:

  1. Операции с базой данных: Данная реализация ориентирована на выполнение общих операций с базой данных.
  2. Операции запроса для фильтрации данных: Данная реализация позволяет фильтровать и манипулировать данными с помощью операций запроса.

QueryBuilder поддерживает сериализацию в формат JSON, что делает его гибким и мощным инструментом для работы с базами данных. Вот несколько существующих реализаций:

QueryBuilderMySQL - это специальная реализация, предназначенная для работы с базами данных MySQL. Для ее установки установите пакет QueryBuilderMySQL с помощью npm:

npm install querybuildermysql2

Инициализация:

// /definitions/db.js
require('querybuildermysql2').init('default', CONF.database);

// require('querybuildermysql2').init(name, connectionstring, pooling, [errorhandling]);
// name {String} a name of DB (default: "default")
// connectionstring {String} a connection to the [__ MySQL__](https://www.mysql.com)
// pooling {Number} max. clients (default: "0" (disabled))
// errorhandling {Function(err, cmd)}

4. Настройка подключения к базе данных MySQL

  • Откройте файл конфигурации:
    Отредактируйте файл /config и добавьте строку подключения MySQL.
  • Использование в db.js:
    В файле /definitions/db.js используйте строку соединения с QueryBuilderMySQL:
require('querybuildermysql2').init('default', require('total.js').config.database);

Установив и инициализировав QueryBuilderMySQL, вы сможете легко выполнять операции с базами данных MySQL в приложении Total.js. Такая интеграция упрощает процесс запроса и манипулирования данными, повышая эффективность и функциональность ваших веб-приложений.

5. Использование QueryBuilderMySQL в Total.js

Теперь, когда вы установили Total.js и настроили подключение к базе данных MySQL, перейдем к использованию QueryBuilderMySQL для работы с базой данных в приложении Total.js.

Создание схемы Total.js

В Total.js схемы используются для определения структуры моделей данных и задания действий, связанных с этими моделями. Ниже приведен пример схемы Total.js (/schemas/users.js), в которой используется QueryBuilderMySQL:

// /schemas/users.js

NEWSCHEMA('Users', function(schema) {

    // Action: List users
    schema.action('list', {
        name: 'List users',
        action: function($) {
            var builder = DB().list('tbl_user');
            // Autoquery using QueryBuilderMySQL
            // - Auto-generates query based on provided parameters
            // - Sorts the result by 'dtcreated' in descending order
            // - Limits the result to 100 records
            builder.autoquery($.query, 'id:String, name:String, phone:String, phone:String, isonline:Boolean, countprovider:Number, dtcreated:Date,dtupdated:Date,countlogin:Number,isonline:Boolean', 'dtcreated_desc', 100);

            // Additional filtering to exclude removed users
            builder.where('isremoved=FALSE');

            // Sorts the result by 'dtcreated' in descending order
            builder.sort('dtcreated', true);

            // Executes the query and provides the result to the callback function
            builder.callback($.callback);
        }
    });

    // Action: Check customer before insert
    schema.action('check', {
        name: 'Check customer before insert',
        action: function($, model) {
            var db = DB();

            // Check operation using QueryBuilderMySQL
            // - Checks if a user with the provided phone number already exists
            // - Provides fields 'id' for further processing
            // - Throws an error if the user already exists
            db.check('tbl_user').where('phone', model.phone).where('isremoved=FALSE').fields('id').error('@(The account already exists)', true).callback($.done());
        }
    });

    // Action: Create new customer
    schema.action('create', {
        name: 'Insert new customer',
        input:  'gender:{male|female},fistname:Capitalize(40),lastname:Capitalize(40),role:{collector|buyer},phone:Phone,password:String,pincode:Number,photo:String', // Schema inline validation.
        action: async function($, model) {
            // ... (implementation details for creating a new customer)

            var db = DB();

            // Insert operation using QueryBuilderMySQL
            // - Inserts the new customer into the 'tbl_user' table
            await db.insert('tbl_user', model).promise($);

            // ... (additional implementation details)

            // Provides a response with a token and user information
            db.callback($.done({ token: token, user: model }));
        }
    });

    // Action: Remove User
    schema.action('remove', {
        name: 'Remove User',
        params: '*id:String',
        action: async function($) {
            var params = $.params;
            var db = DB();
            // Update operation using QueryBuilderMySQL
            // - Marks the user as removed in the 'tbl_user' table
            // - Performs error handling, audit logging, and provides a response
            db.update('tbl_user', { isremoved: true }).id(params.id).where('isremoved=FALSE').error(404).audit($, 'Removed user: ' + params.id).callback($.done());
        }
    });
});

В заключение следует отметить, что интеграция QueryBuilderMySQL в приложение Total.js позволяет оптимизировать работу с базами данных MySQL. Основные шаги включают создание приложения Total.js, настройку соединения с MySQL, установку QueryBuilderMySQL и использование его операций в схеме Total.js. Такое сочетание повышает эффективность и производительность разработчика, делая Total.js мощным выбором для приложений, управляемых базами данных.

Счастливого кодинга!

Источник:

#JavaScript #NodeJS #MySQL
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу