首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NodeJS mysql2蓝鸟?

NodeJS mysql2蓝鸟?
EN

Stack Overflow用户
提问于 2015-07-11 13:18:15
回答 2查看 1.5K关注 0票数 1

我已经测试了mysql和mysql2,似乎2已经做了一些改进,但它并不是一个确切的替代下降。同时,Q是一个很好的库,它似乎更容易集成,但是bluebird似乎占用更少的内存,运行速度更快,所以...

我当前的mysql-bluebird连接器如下所示,允许直接使用query('SELECT email FROM users.users WHERE id=?',id).then(function(res){var email=res[0][0];});

代码语言:javascript
复制
/* global module, require */
var conf=require('./conf.js').conf;
var mysql = require('mysql');
var Promise = require('bluebird');
var using = Promise.using;
Promise.promisifyAll(require('mysql/lib/Connection').prototype);
Promise.promisifyAll(require('mysql/lib/Pool').prototype);

var pool = mysql.createPool(conf.mysql);

var getConnection = function () {
 return pool.getConnectionAsync().disposer(function (connection) {
 return connection.release();
 });
};
var query = function (command) {
 return using(getConnection(), function (connection) {
 return connection.queryAsync(command);
 });
};
function queryWrapper(q,a){
  if(a){
    return query(mysql.format(q,a));
  }
  else{
    return query(mysql.format(q));
  }
}
module.exports = {
 query: queryWrapper
};

到目前为止,我用mysql2做这件事的尝试还没有成功。

有没有人有任何关于如何转换的见解?谢谢,Jegsar

EN

回答 2

Stack Overflow用户

发布于 2015-07-11 13:31:14

您可以使用mysql2-promise。这是一个使用q的简单包装器,它简化了mysql2。如果你更喜欢使用Bluebird,你可以看看这个包装器是如何创建的,然后自己来做。

票数 1
EN

Stack Overflow用户

发布于 2016-06-14 11:25:21

node-mysql2现在有了Promise api built in,您可以选择要使用的promise实现

代码语言:javascript
复制
var mysql = require('mysql2/promise');
mysql.createConnection({
  Promise: require('bluebird'), // if not set, global Promise is used
  user: 'foo',
  password: 'bar',
  database: 'baz'
})
 .then((conn) => conn.query('select 1+1 as test'))
 .then(([rows, fields]) => console.log(rows[0]))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31353714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档