{"id":23207192,"url":"https://github.com/german-stepanov/nodejs-active-record-for-mysql","last_synced_at":"2026-05-08T04:37:27.163Z","repository":{"id":57172848,"uuid":"320402721","full_name":"German-Stepanov/nodejs-active-record-for-mysql","owner":"German-Stepanov","description":"Создание запросов в базу данных MySQL для nodejs","archived":false,"fork":false,"pushed_at":"2020-12-16T08:10:16.000Z","size":40,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-10T21:03:15.151Z","etag":null,"topics":["active-record","mysql","nodejs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/German-Stepanov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-12-10T22:14:16.000Z","updated_at":"2021-07-07T10:36:38.000Z","dependencies_parsed_at":"2022-08-24T13:31:01.939Z","dependency_job_id":null,"html_url":"https://github.com/German-Stepanov/nodejs-active-record-for-mysql","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/German-Stepanov/nodejs-active-record-for-mysql","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/German-Stepanov%2Fnodejs-active-record-for-mysql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/German-Stepanov%2Fnodejs-active-record-for-mysql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/German-Stepanov%2Fnodejs-active-record-for-mysql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/German-Stepanov%2Fnodejs-active-record-for-mysql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/German-Stepanov","download_url":"https://codeload.github.com/German-Stepanov/nodejs-active-record-for-mysql/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/German-Stepanov%2Fnodejs-active-record-for-mysql/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259957270,"owners_count":22937544,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["active-record","mysql","nodejs"],"created_at":"2024-12-18T17:18:18.207Z","updated_at":"2026-05-08T04:37:27.137Z","avatar_url":"https://github.com/German-Stepanov.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nodejs-active-record-for-mysql\nДинамическое создание запросов в базу данных MySQL для nodejs\n```\nИспользуется для динамичного формирования наиболее популярных запросов в БД MySQL\nCREATE\t- создание таблицы\nDROP\t- удаление таблицы\nINSERT\t- добавление записи\nUPDATE\t- обновление записей\nDELETE\t- удаление записей\nSELECT\t- получение записей\n```\n## Пример подключения\n```JS\nvar model_users = new (require('active-record-for-mysql'))({\n\ttable \t\t: 'users';\n\tidkey \t\t: 'user_id';\n\ttable_nick \t: 'Пользователи',\n\tengine\t\t: 'InnoDB',\n\tcharset\t\t: 'utf8',\n\tfields \t\t: \n\t[\n\t\t{\n\t\t\tfield\t: 'user_id', \n\t\t\tlabel\t: 'ID ПОЛЬЗОВАТЕЛЯ', \n\t\t\ttype\t: 'int(11) NOT NULL',\n\t\t\tauto \t: 1,\n\t\t},\n\t\t{\n\t\t\tfield\t: 'user_name', \n\t\t\tlabel\t: 'ИМЯ ПОЛЬЗОВАТЕЛЯ', \n\t\t\ttype\t: 'varchar(100) NOT NULL',\n\t\t},\n\t\t{\n\t\t\tfield\t: 'user_family', \n\t\t\tlabel\t: 'ФАМИЛМЯ ПОЛЬЗОВАТЕЛЯ', \n\t\t\ttype\t: 'varchar(100) NOT NULL',\n\t\t},\n\t\t{\n\t\t\tfield\t: 'user_city_id', \n\t\t\tlabel\t: 'ID ГОРОДА ПОЛЬЗОВАТЕЛЯ', \n\t\t\ttype\t: 'int(11) NOT NULL',\n\t\t}\n\t]\n});\n```\n## Примеры использования:\n\n\n### ЗАПРОС СОЗДАНИЯ ТАБЛИЦЫ\n```JS\nmodel_users.query_create();\n```\n```MYSQL\nCREATE 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;\n```\n\n\n### ЗАПРОС УДАЛЕНИЯ ТАБЛИЦЫ\n```JS\nmodel_users.query_drop();\n```\n```MYSQL\nDROP TABLE IF EXISTS `users`;\n```\n\n### ЗАПРОС ВСЕХ СТРОК СО ВСЕМИ ПОЛЯМИ\n```JS\nvar data = {};\nmodel_users.query_select(data);\n```\n```MYSQL\nSELECT * FROM users;\n```\n\n\n### ЗАПРОС ВСЕХ СТРОК С ПЕРЕЧИСЛЕННЫМИ ПОЛЯМИ\n```JS\nvar data = {\n\tfields : ['user_id', 'user_name', 'user_family']\n};\nmodel_users.query_select(data));\n```\n```MYSQL\nSELECT `user_id`, `user_name`, `user_family` FROM users;\n```\n\n\n### ЗАПРОС ОДНОЙ СТРОКИ С ЗАДАННЫМ ID\n```JS\nvar data = {\n\tfields \t: [],\n\twhere \t: {\n\t\tuser_id : 1,\n\t},\n\tlimit \t: 1\n};\nmodel_users.query_select(data)\n```\n```MYSQL\nSELECT * FROM users WHERE `user_id`='1' LIMIT  1;\n```\n\n\n### ЗАПРОС СТРОК НА УСЛОВИЯХ WHERE И IN\n```JS\nvar data = {\n\tfields\t: ['user_id', 'user_name', 'user_family'],\n\twhere\t: {\n\t\tuser_family\t\t: 'Иванов',\n\t\t'user_name !='\t\t: 'Петр',\n\t\t'OR user_name !='\t: 'Вася',\n\t},\n\tin\t\t: {\n\t\t'user_id'\t\t: [1,2,3],\n\t\t'user_profi'\t\t: ['Сантехник', 'Электрик', 'Дворник']\n\t},\n};\nmodel_users.query_select(data)\n```\n```MYSQL\nSELECT `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 ('Сантехник', 'Электрик', 'Дворник');\n```\n\n\n### ЗАПРОС СТРАНИЦЫ СТРОК СГРУППИРОВАННЫХ GROUP НА УСЛОВИЯХ LIKE С СОРТИРОВКОЙ\n```JS\nvar data = {\n\tfields\t: ['user_name', 'user_family'],\n\tgroup\t: ['user_name', 'user_family'],\n\tlike\t: {\n\t\tuser_family\t: 'Ива',\n\t\tuser_name\t: 'etr%',\n\t},\n\torder\t: {\n\t\tuser_family\t: 'asc',\n\t\tuser_age\t: 'desc'\n\t},\n\tlimit\t: 10,\n\toffset\t: 5,\n};\nmodel_users.query_select(data));\n```\n```MYSQL\nSELECT `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;\n```\n\n\n### ЗАПРОС ДОБАВЛЕНИЯ СТРОКИ\n```JS\nvar data = {\n\tdata\t: {\n\t\tuser_family\t: 'Иванов',\n\t\tuser_name\t: 'Петр',\n\t}\n};\nmodel_users.query_insert(data));\n```\n```MYSQL\nINSERT INTO users SET `user_family`='Иванов', `user_name`='Петр';\n```\n\n\n### ЗАПРОС ДОБАВЛЕНИЯ ДВОИЧНЫХ ДАННЫХ ИЗ ФАЙЛА (РЕДКО ИСПОЛЬЗУЕТСЯ)\n```JS\nvar data = {\n\tdata\t: {\n\t\tuser_family\t: 'Иванов',\n\t\tuser_name\t: 'Петр',\n\t\tuser_passport\t: require('fs').readFileSync('./uploads/passport.jpg'),\n\t}\n};\nmodel_users.query_insert(data));\n```\n```MYSQL\nINSERT INTO users SET `user_family`='Иванов', `user_name`='Петр', ?;\n```\n\n\n### ЗАПРОС ОБНОВЛЕНИЯ СТРОК НА УСЛОВИЯХ WHERE, IN, LIKE\n```JS\nvar data = {\n\tdata\t: {\n\t\tuser_family\t: 'Иванов',\n\t\tuser_name\t: 'Петр',\n\t},\n\twhere\t: {\n\t\tuser_family\t: 'Петров',\n\t\tuser_name\t: 'Иван',\n\t},\n\tin\t: {\n\t\tuser_id\t\t: [1,2,3],\n\t},\n\tlike\t: {\n\t\tuser_family\t: 'Ива',\n\t\tuser_name\t: 'etr%',\n\t},\n};\nmodel_users.query_update(data));\n```\n```MYSQL\nUPDATE 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%';\n```\n\n\n### ЗАПРОС ОБНОВЛЕНИЯ ДВОИЧНЫХ ДАННЫХ ИЗ ФАЙЛА (РЕДКО ИСПОЛЬЗУЕТСЯ)\n```JS\nvar data = {\n\tdata\t: {\n\t\tuser_family\t: 'Иванов',\n\t\tuser_name\t: 'Петр',\n\t\tuser_passport\t: require('fs').readFileSync('./uploads/passport.jpg'),\n\t},\n\tin\t: {\n\t\tuser_id\t\t: [1,2,3],\n\t},\n};\nmodel_users.query_update(data));\n```\n```MYSQL\nUPDATE users SET `user_family`='Иванов', `user_name`='Петр', ? WHERE `user_id` IN ('1', '2', '3');\n```\n\n\n### ЗАПРОС ОБНОВЛЕНИЯ ПОЛЯ В ЗАВИСИМОСТИ ОТ ЗНАЧЕНИЯ В ДРУГОМ ПОЛЕ (РЕДКО ИСПОЛЬЗУЕТСЯ)\n```JS\nvar data = {\n\tdata\t: {\n\t\tuser_profi\t: {\n\t\t\tcase\t\t: {\n\t\t\t\tuser_code\t: {\n\t\t\t\t\t'A 01'\t\t: 'Инженер-электрик',\n\t\t\t\t\t'B 11 3'\t: 'Слесарь-сантехник 3 категории',\n\t\t\t\t\t'A 02'\t\t: 'Инженер-конструктор',\n\t\t\t\t\t'С'\t\t: 'Разнорабочий',\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t},\n\tin\t: {\n\t\tuser_id\t\t: [1,2,3],\n\t},\n};\nmodel_users.query_update(data));\n```\n```MYSQL\nUPDATE 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');\n```\n\n\n### ЗАПРОС УДАЛЕНИЯ СТРОК\n```JS\nvar data = {\n\twhere\t: {\n\t\tuser_family\t: 'Иванов',\n\t\t'user_age \u003e'\t: 25\n\t}, \n\tin\t: {\n\t\tuser_id\t\t: [1,2,3]\n\t},\n};\nmodel_users.query_delete(data));\n```\n```MYSQL\nDELETE FROM users WHERE `user_family`='Иванов' AND `user_age`\u003e'25' AND `user_id` IN ('1', '2', '3');\n```\n\n## Тестирование\n```\nПример серверного кода для проверки работоспособности расположен в директории \"_demo\"\n```\n### Запуск тестов\n```\nnode server\n```\n### Результат\n```\nhttp://localhost:2020\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgerman-stepanov%2Fnodejs-active-record-for-mysql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgerman-stepanov%2Fnodejs-active-record-for-mysql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgerman-stepanov%2Fnodejs-active-record-for-mysql/lists"}