Socket
Socket
Sign inDemoInstall

active-record-for-mysql

Package Overview
Dependencies
0
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    active-record-for-mysql

MySQL active-record query builder for nodejs


Version published
Weekly downloads
41
increased by36.67%
Maintainers
1
Install size
38.1 kB
Created
Weekly downloads
 

Readme

Source

nodejs-active-record-for-mysql

Динамическое создание запросов в базу данных MySQL для nodejs

Используется для динамичного формирования наиболее популярных запросов в БД MySQL
CREATE	- создание таблицы
DROP	- удаление таблицы
INSERT	- добавление записи
UPDATE	- обновление записей
DELETE	- удаление записей
SELECT	- получение записей

Пример подключения

var model_users = new (require('active-record-for-mysql'))({
	table 		: 'users';
	idkey 		: 'user_id';
	table_nick 	: 'Пользователи',
	engine		: 'InnoDB',
	charset		: 'utf8',
	fields 		: 
	[
		{
			field	: 'user_id', 
			label	: 'ID ПОЛЬЗОВАТЕЛЯ', 
			type	: 'int(11) NOT NULL',
			auto 	: 1,
		},
		{
			field	: 'user_name', 
			label	: 'ИМЯ ПОЛЬЗОВАТЕЛЯ', 
			type	: 'varchar(100) NOT NULL',
		},
		{
			field	: 'user_family', 
			label	: 'ФАМИЛМЯ ПОЛЬЗОВАТЕЛЯ', 
			type	: 'varchar(100) NOT NULL',
		},
		{
			field	: 'user_city_id', 
			label	: 'ID ГОРОДА ПОЛЬЗОВАТЕЛЯ', 
			type	: 'int(11) NOT NULL',
		}
	]
});

Примеры использования:

ЗАПРОС СОЗДАНИЯ ТАБЛИЦЫ

model_users.query_create();
CREATE TABLE IF NOT EXISTS `users` ( `user_id` int(11) NOT NULL AUTO_INCREMENT, `user_name` varchar(100) NOT NULL,`user_family` varchar(100) NOT NULL, `user_city_id` int(11) NOT NULL, PRIMARY KEY (`user_id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

ЗАПРОС УДАЛЕНИЯ ТАБЛИЦЫ

model_users.query_drop();
DROP TABLE IF EXISTS `users`;

ЗАПРОС ВСЕХ СТРОК СО ВСЕМИ ПОЛЯМИ

var data = {};
model_users.query_select(data);
SELECT * FROM users;

ЗАПРОС ВСЕХ СТРОК С ПЕРЕЧИСЛЕННЫМИ ПОЛЯМИ

var data = {
	fields : ['user_id', 'user_name', 'user_family']
};
model_users.query_select(data));
SELECT `user_id`, `user_name`, `user_family` FROM users;

ЗАПРОС ОДНОЙ СТРОКИ С ЗАДАННЫМ ID

var data = {
	fields 	: [],
	where 	: {
		user_id : 1,
	},
	limit 	: 1
};
model_users.query_select(data)
SELECT * FROM users WHERE `user_id`='1' LIMIT  1;

ЗАПРОС СТРОК НА УСЛОВИЯХ WHERE И IN

var data = {
	fields	: ['user_id', 'user_name', 'user_family'],
	where	: {
		user_family		: 'Иванов',
		'user_name !='		: 'Петр',
		'OR user_name !='	: 'Вася',
	},
	in		: {
		'user_id'		: [1,2,3],
		'user_profi'		: ['Сантехник', 'Электрик', 'Дворник']
	},
};
model_users.query_select(data)
SELECT `user_id`, `user_name`, `user_family` FROM users WHERE `user_family`='Иванов' AND `user_name`!='Петр' OR `user_name`!='Вася' AND `user_id` IN ('1', '2', '3') AND `user_profi` IN ('Сантехник', 'Электрик', 'Дворник');

ЗАПРОС СТРАНИЦЫ СТРОК СГРУППИРОВАННЫХ GROUP НА УСЛОВИЯХ LIKE С СОРТИРОВКОЙ

var data = {
	fields	: ['user_name', 'user_family'],
	group	: ['user_name', 'user_family'],
	like	: {
		user_family	: 'Ива',
		user_name	: 'etr%',
	},
	order	: {
		user_family	: 'asc',
		user_age	: 'desc'
	},
	limit	: 10,
	offset	: 5,
};
model_users.query_select(data));
SELECT `user_name`, `user_family` FROM users WHERE `user_family` LIKE '%Ива%' AND `user_name` LIKE 'etr%' GROUP BY user_name, user_family ORDER BY `user_family` ASC, `user_age` DESC LIMIT 5, 10;

ЗАПРОС ДОБАВЛЕНИЯ СТРОКИ

var data = {
	data	: {
		user_family	: 'Иванов',
		user_name	: 'Петр',
	}
};
model_users.query_insert(data));
INSERT INTO users SET `user_family`='Иванов', `user_name`='Петр';

ЗАПРОС ДОБАВЛЕНИЯ ДВОИЧНЫХ ДАННЫХ ИЗ ФАЙЛА (РЕДКО ИСПОЛЬЗУЕТСЯ)

var data = {
	data	: {
		user_family	: 'Иванов',
		user_name	: 'Петр',
		user_passport	: require('fs').readFileSync('./uploads/passport.jpg'),
	}
};
model_users.query_insert(data));
INSERT INTO users SET `user_family`='Иванов', `user_name`='Петр', ?;

ЗАПРОС ОБНОВЛЕНИЯ СТРОК НА УСЛОВИЯХ WHERE, IN, LIKE

var data = {
	data	: {
		user_family	: 'Иванов',
		user_name	: 'Петр',
	},
	where	: {
		user_family	: 'Петров',
		user_name	: 'Иван',
	},
	in	: {
		user_id		: [1,2,3],
	},
	like	: {
		user_family	: 'Ива',
		user_name	: 'etr%',
	},
};
model_users.query_update(data));
UPDATE users SET `user_family`='Иванов', `user_name`='Петр' WHERE `user_family`='Петров' AND `user_name`='Иван' AND `user_id` IN ('1', '2', '3') AND `user_family` LIKE '%Ива%' AND `user_name` LIKE 'etr%';

ЗАПРОС ОБНОВЛЕНИЯ ДВОИЧНЫХ ДАННЫХ ИЗ ФАЙЛА (РЕДКО ИСПОЛЬЗУЕТСЯ)

var data = {
	data	: {
		user_family	: 'Иванов',
		user_name	: 'Петр',
		user_passport	: require('fs').readFileSync('./uploads/passport.jpg'),
	},
	in	: {
		user_id		: [1,2,3],
	},
};
model_users.query_update(data));
UPDATE users SET `user_family`='Иванов', `user_name`='Петр', ? WHERE `user_id` IN ('1', '2', '3');

ЗАПРОС ОБНОВЛЕНИЯ ПОЛЯ В ЗАВИСИМОСТИ ОТ ЗНАЧЕНИЯ В ДРУГОМ ПОЛЕ (РЕДКО ИСПОЛЬЗУЕТСЯ)

var data = {
	data	: {
		user_profi	: {
			case		: {
				user_code	: {
					'A 01'		: 'Инженер-электрик',
					'B 11 3'	: 'Слесарь-сантехник 3 категории',
					'A 02'		: 'Инженер-конструктор',
					'С'		: 'Разнорабочий',
				},
			},
		}
	},
	in	: {
		user_id		: [1,2,3],
	},
};
model_users.query_update(data));
UPDATE users SET `user_profi` = CASE `user_code` WHEN 'A 01' THEN 'Инженер-электрик' WHEN 'B 11 3' THEN 'Слесарь-сантехник 3 категории' WHEN 'A 02' THEN 'Инженер-конструктор' WHEN 'С' THEN 'Разнорабочий' ELSE `user_profi` END WHERE `user_id` IN ('1', '2', '3');

ЗАПРОС УДАЛЕНИЯ СТРОК

var data = {
	where	: {
		user_family	: 'Иванов',
		'user_age >'	: 25
	}, 
	in	: {
		user_id		: [1,2,3]
	},
};
model_users.query_delete(data));
DELETE FROM users WHERE `user_family`='Иванов' AND `user_age`>'25' AND `user_id` IN ('1', '2', '3');

Тестирование

Пример серверного кода для проверки работоспособности расположен в директории "_demo"

Запуск тестов

node server

Результат

http://localhost:2020

Keywords

FAQs

Last updated on 16 Dec 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc