[英]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.