Использование co с node-mysql2
Я использую библиотеку co с node-mysql2.
const newActivityCount = co.wrap(function *(memberId) {
var sql = "SELECT 1";
var conn = yield pool.getConnection();
var results = yield conn.execute(sql);
yield conn.release();
return results[0][0].newActivity;
});
Это используется как
newActivityCount()
.then(..something)
.catch(err => { throw err;});
Следующая ошибка - throw:
You may only yield a function, promise, generator, array, or object, but the following object was passed: "undefined"
Вот как определяется пул:
// my-connection.js
var mysql = require('mysql/promise');
var bluebird = require('bluebird);
const pool = mysql.createPool({
connectionLimit: CONFIG.mysql.connectionLimit,
host : CONFIG.mysql.host,
user : CONFIG.mysql.user,
password : CONFIG.mysql.password,
database : CONFIG.mysql.database,
Promise : bluebird
});
module.exports = pool;
ОДНАКО, если я изменю строку 5 выше с
yield conn.release() to conn.release()
т.е. если я удалю ключевое слово yield, все будет работать нормально.
По мнению автора:
Он рекомендует использовать yield conn.end()
Я беспокоюсь, что если я не "уступлю" там, я могу что-то испортить.
Любые подсказки, что я здесь скучаю?