BAEベースnodejs接続mysqlモデル

2517 ワード

 var mysql = require('mysql');
var username = 'yourak';
var password = 'yoursk';
var db_host = 'sqld.duapp.com';
var db_port = 4050;
var db_name = 'yourdbname';
var option = {
  host: db_host,
  port: db_port,
  user: username,
  password: password,
  database: db_name
}
function testSql(req, res) {
  var TEST_TABLE = 'baeSql';
  var client = mysql.createConnection(option);
  client.connect(function(err){
      if (err) {
        res.end('connect error');
        console.log(err);
        return;
      }
      res.write('connected success
');       createTalble(client);
  });
  client.on('error',function(err) {
      if (err.errno != 'ECONNRESET') {
        throw err;
      } else {
        //do nothing
      }
  });
  function createTalble(client) {
    client.query(
      'CREATE TABLE '+ TEST_TABLE +
      '(id INT(11) AUTO_INCREMENT, '+
      'title VARCHAR(255), '+
      'text TEXT, '+
      'PRIMARY KEY (id));', function(err, results) {
        if (err && err.number != client.ERROR_TABLE_EXISTS_ERROR) {
          console.log(err);
          return;
        }
        res.write("create table success 
");         insertData(client);       }     );   }
  function insertData(client) {
    client.query(
      'INSERT INTO '+ TEST_TABLE +
      ' SET title = ?, text = ?',
      ['baidu', 'welcome to BAE'],
      function(err, results) {
        if (err) {
          res.end('insertData error');
          console.log(err);
          return;
        }
        res.write('insert success 
');         queryData(client);       }     );   }
  function queryData (clinet) {
    client.query(
      'SELECT * FROM '+TEST_TABLE,
      function (err, results, fields) {
        if (err) {
          res.end('query error');
          console.log(err);
          return;
        }
        // res.end('results: ' + JSON.stringify(results) + '
');         res.write('query success 
');         res.end('results length: ' + results.length);         client.end();       }     );   }  }
module.exports = testSql