Как использовать базу данных 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 включает в себя две основные реализации:
- Операции с базой данных: Данная реализация ориентирована на выполнение общих операций с базой данных.
- Операции запроса для фильтрации данных: Данная реализация позволяет фильтровать и манипулировать данными с помощью операций запроса.
QueryBuilder поддерживает сериализацию в формат JSON, что делает его гибким и мощным инструментом для работы с базами данных. Вот несколько существующих реализаций:
- NoSQL Embedded (TextDB) Driver: Включён в состав ядра Total.js.
- QueryBuilder for PostgreSQL
- QueryBuilder for MySQL
- QueryBuilder for SQLite
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 мощным выбором для приложений, управляемых базами данных.
Счастливого кодинга!