node-query/node_modules/mysql2/examples/server.js

58 lines
1.6 KiB
JavaScript

var mysql = require('../index.js');
var flags = require('../lib/constants/client.js');
var auth = require('../lib/auth_41.js');
function authenticate(params, cb) {
console.log(params);
var doubleSha = auth.doubleSha1('pass123');
var isValid = auth.verifyToken(params.authPluginData1, params.authPluginData2, params.authToken, doubleSha);
if (isValid)
cb(null);
else
// for list of codes lib/constants/errors.js
cb(null, { message: 'wrong password dude', code: 1045});
}
var server = mysql.createServer();
server.listen(3333);
server.on('connection', function(conn) {
// we can deny connection here:
// conn.writeError({ message: 'secret', code: 123 });
// conn.close();
conn.serverHandshake({
protocolVersion: 10,
serverVersion: '5.6.10', //'node.js rocks',
connectionId: 1234,
statusFlags: 2,
characterSet: 8,
capabilityFlags: 0xffffff,
authCallback: authenticate
});
conn.on('field_list', function(table, fields) {
console.log('FIELD LIST:', table, fields);
conn.writeEof();
});
conn.on('query', function(query) {
conn.writeColumns([{
catalog: 'def',
schema: 'test',
table: 'test_table',
orgTable: 'test_table',
name: 'beta',
orgName: 'beta',
characterSet: 33,
columnLength: 384,
columnType: 253,
flags: 0,
decimals: 0
}]);
conn.writeTextRow(['test тест テスト փորձարկում পরীক্ষা kiểm tra ']);
conn.writeTextRow(['ტესტი પરીક્ષણ מבחן פּרובירן اختبار परीक्षण']);
conn.writeEof();
conn.close();
});
});