{"id":44045,"library":"tmap-mysql","title":"tmap-mysql","description":"MySQL Data Access Layer wrapper for TradeMap4You projects, version 1.0.10. Provides connection pooling, parameterized queries, bulk insert from JSON, and pool management. Built on mysql2, supports up to 1000 concurrent users with UTF-8 (utf8mb4) support. A lightweight internal tool not intended for general use.","status":"active","version":"1.0.10","language":"javascript","source_language":"en","source_url":null,"tags":["javascript","mysql","mysql2","database","helper","wrapper"],"install":[{"cmd":"npm install tmap-mysql","lang":"bash","label":"npm"},{"cmd":"yarn add tmap-mysql","lang":"bash","label":"yarn"},{"cmd":"pnpm add tmap-mysql","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Underlying MySQL driver for all database operations","package":"mysql2","optional":false}],"imports":[{"note":"Package is CommonJS only; no ESM export or TypeScript types.","wrong":"import MySqlDO from 'tmap-mysql';","symbol":"default","correct":"const MySqlDO = require('tmap-mysql');"},{"note":"Constructor requires a connection string argument; no default.","wrong":"const repo = new MySqlDO();","symbol":"MySqlDO","correct":"const repo = new (require('tmap-mysql'))(connectionString);"},{"note":"executeQuery is a method on the instance, not a static export. The correct import is the default class.","wrong":"const executeQuery = require('tmap-mysql').executeQuery;","symbol":"executeQuery","correct":"const { executeQuery } = require('tmap-mysql');"},{"note":"Expects a single string, not an object. Use MySQL connection URL format.","wrong":"const repo = new MySqlDO({ host: 'localhost' });","symbol":"connectionString","correct":"const repo = new MySqlDO('mysql://user:pass@host:3306/db');"}],"quickstart":{"code":"const MySqlDO = require('tmap-mysql');\nconst config = require('./config');\n\nconst dataRepo = new MySqlDO(config.mysqlConString);\n\nasync function main() {\n  try {\n    const users = await dataRepo.executeQuery('SELECT * FROM users WHERE id = ?', [1]);\n    console.log('User:', users);\n\n    const allUsers = await dataRepo.getTableData('users');\n    console.log('All users:', allUsers);\n\n    const newUser = await dataRepo.InsertRowFromData('users', { name: 'John', email: 'john@example.com' });\n    console.log('Inserted:', newUser);\n\n    const poolStatus = dataRepo.getPoolStatus();\n    console.log('Pool:', poolStatus);\n  } finally {\n    await dataRepo.closePool();\n  }\n}\n\nmain().catch(console.error);","lang":"javascript","description":"Shows creating a repository with connection string, executing parameterized query, getting table data, inserting a row, checking pool status, and closing pool."},"warnings":[{"fix":"Provide a string like 'mysql://user:pass@host:3306/db'.","message":"Constructor expects a single connection string (MySQL URL), not a config object. Passing an object will cause a TypeError.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use require() instead of import.","message":"Package is CommonJS-only; no ESM exports. Using 'import' will fail.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Create a .d.ts file or use @ts-ignore.","message":"No TypeScript type definitions. Using TypeScript will require manual declaration or 'any' cast.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Call await dataRepo.closePool() in process exit handlers (e.g., process.on('SIGINT')).","message":"closePool() must be called on application shutdown to release database connections. Failing to do so may exhaust connection limits.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Replace getQueryResult(query) with executeQuery(query, params) and supply parameters.","message":"getQueryResult() is a raw query method; use executeQuery() with parameterized queries instead to prevent SQL injection.","severity":"deprecated","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'-8':37 '1.0.10':13 '1000':32 'access':6 'built':26 'bulk':19 'concurr':33 'connect':15 'data':5 'databas':52 'general':47 'helper':53 'insert':20 'intend':45 'intern':42 'javascript':49 'json':22 'layer':7 'lightweight':41 'manag':25 'mysql':3,4,50 'mysql2':28,51 'parameter':17 'pool':16,24 'project':11 'provid':14 'queri':18 'support':29,39 'tmap':2 'tmap-mysql':1 'tool':43 'trademap4you':10 'use':48 'user':34 'utf':36 'utf8mb4':38 'version':12 'wrapper':8,54","created_at":"2026-06-05T17:02:42.692566+00:00","updated_at":"2026-06-05T17:02:42.692566+00:00","problems":[{"fix":"const MySqlDO = require('tmap-mysql'); const repo = new MySqlDO(connectionString);","cause":"Using wrong import style (e.g., import instead of require) or forgetting 'new'.","error":"TypeError: MySqlDO is not a constructor"},{"fix":"Run 'npm install tmap-mysql' or 'npm link tmap-mysql' in your project.","cause":"Package not installed or not linked.","error":"Error: Cannot find module 'tmap-mysql'"},{"fix":"Verify the MySQL host, port, and network connectivity. Use correct format: mysql://user:pass@host:3306/db.","cause":"Connection string host is incorrect or database server is not reachable.","error":"Error: getaddrinfo ENOTFOUND"},{"fix":"Check credentials in connection string. Ensure user has proper privileges.","cause":"Invalid username or password in connection string.","error":"Error: ER_ACCESS_DENIED_ERROR: Access denied for user"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":null,"github":null,"docs":null,"changelog":null,"pypi":null,"npm":"tmap-mysql","openapi_spec":null,"status_page":null,"smithery":null,"categories":["database"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-05","next_check":"2026-09-03","install_tag":null}}