簡體   English   中英

NodeJS mysql2藍鳥嗎?

[英]NodeJS mysql2 Bluebird?

在測試mysql vs mysql2時,似乎2已作了一些改進,但並不是替代品的確切下降。 同時Q是一個很好的庫,似乎易於集成,但是bluebird似乎占用更少的內存並且運行更快,因此...

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

/* 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進行廣告的嘗試還沒有完成。

有人對如何轉換此有任何見解嗎? 謝謝,傑格薩爾

您可以使用mysql2-promise 這是一個使用q的簡單包裝器,可實現mysql2。 如果您想使用Bluebird,則可以查看如何創建此包裝器並自己完成。

node-mysql2現在內置了Promise api ,您可以選擇要使用的Promise實現。

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]))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM