使用co-node-mysql2

时间:2016-09-28 16:32:19

标签: javascript node.js node-mysql co

我正在使用带有node-mysql2的co库。

 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;});

抛出以下错误:

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'关键字,工作正常

根据author

他建议使用yield conn.end(), 我很担心,如果我不是收益'在那里,我可能会弄乱一些东西。

我在这里缺少什么线索?

0 个答案:

没有答案