Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
promise-mysql2
Advanced tools
Readme
Promise-mysql2 is a wrapper for mysqljs/mysql that wraps function calls with promises.
node >= 8.0
To install promise-mysql, use npm:
$ npm install promise-mysql2
Please refer to mysqljs/mysql for documentation on how to use the mysql functions.
At the minute only the standard connection (using .createConnection()
) and the pool (using .createPool()
) is supported. createPoolCluster
is not implemented yet.
Important note: don't forget to call connection.end() when you're finished otherwise the Node process won't finish
To connect, you simply call .createConnection()
like you would on mysqljs/mysql:
const mysql = require('promise-mysql2');
mysql.createConnection({
host: 'localhost',
user: 'dashaibi',
password: 'dashaibi',
database: 'dashaibi'
}).then((conn) => {
// do stuff with conn
conn.end();
});
To use the promise, you call the methods as you would if you were just using mysqljs/mysql, minus the callback. You then add a .then() with your function in:
const mysql = require('promise-mysql2');
mysql.createConnection({
host: 'localhost',
user: 'dashaibi',
password: 'dashaibi',
database: 'dashaibi'
}).then((conn) => {
let result = conn.query('select `name` from user');
conn.end();
return result;
}).then(([rows, fields]) => {
// list of user
console.log(rows);
});
You can even chain the promises, using a return within the .then():
const mysql = require('promise-mysql2');
let connection;
mysql.createConnection({
host: 'localhost',
user: 'dashaibi',
password: 'dashaibi',
database: 'dashaibi'
}).then((conn) => {
connection = conn;
return connection.query('select `id` from user where `name`="dashabi"');
}).then(([rows, fields]) => {
// Query the items that dashabi owns.
let result = connection.query('select * from items where `owner`="' + rows[0].id + '" and `name`="dashabi"');
connection.end();
return result;
}).then(([rows, fields]) => {
// Logs out that dashabi owns
console.log(rows);
});
You can catch errors using the .catch() method. You can still add .then() clauses, they'll just get skipped if there's an error
const mysql = require('promise-mysql2');
let connection;
mysql.createConnection({
host: 'localhost',
user: 'dashaibi',
password: 'dashaibi',
database: 'dashaibi'
}).then((conn) => {
connection = conn;
return connection.query('select * from tablethatdoesnotexist');
}).then(() => {
let result = connection.query('select * from user');
connection.end();
return result;
}).catch((error) => {
if (connection && connection.end) connection.end();
//logs out the error
console.log(error);
});
To use the async/await, you call the methods as you would if you were just using mysqljs/mysql.
const mysql = require('promise-mysql2');
let connection = await mysql.createConnection({
host: 'localhost',
user: 'dashaibi',
password: 'dashaibi',
database: 'dashaibi'
});
const [rows, fields] = await connection.query('select `id` from user where `name`="dashabi"');
connection.end();
console.log(rows);
Use pool directly:
pool = mysql.createPool({
host: 'localhost',
user: 'dashaibi',
password: 'dashaibi',
database: 'dashaibi'
connectionLimit: 10
});
pool.query('select `name` from user').then(([rows, fields]){
// Logs out a list of user
console.log(rows);
});
Get a connection from the pool:
let conn;
pool.getConnection().then((connection) => {
conn = connection;
conn.query('select `name` from user').then(...);
conn.release();
}).catch((err) => {
conn.release();
done(err);
});
To use the async/await, you call the methods as you would if you were just using mysqljs/mysql.
const pool = mysql.createPool({
host: 'localhost',
user: 'dashaibi',
password: 'dashaibi',
database: 'dashaibi'
connectionLimit: 10
});
const [rows, fields] = await pool.query('select `name` from user');
console.log(rows);
// get connection from pool
const conn = await pool.getConnection();
const [rows, fields] = await connection.query('select `name` from user');
conn.release();
console.log(rows);
At the moment only simple basics tests are implemented using Mocha. To run the tests, you need to connect to a running MySQL server. A database or write permissions are not required.
Start the test suite with
DB_HOST=localhost DB_USER=user DB_PWD=pwd npm test
FAQs
A promise wrapper for node-mysql
The npm package promise-mysql2 receives a total of 427 weekly downloads. As such, promise-mysql2 popularity was classified as not popular.
We found that promise-mysql2 demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
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.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.