'use strict';
var punch = require('co-punch');
punch('nodejs','redis','mysql','mongodb','request');
var co = require('co');
var fs = require('fs');
var redis = require('redis');
var mysql = require('mysql');
var mongodb = require('mongodb');
var request = require('request');
var assert = require('assert');
var MongoClient = mongodb.MongoClient;
var mysqlClient = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '123456',
database : 'db',
queryFormat: function(query, values) {
if (!values) return query;
return query.replace(/\:(\w+)/g, function(txt, key) {
if (values.hasOwnProperty(key)) {
return this.escape(values[key]);
}
return txt;
}.bind(this));
}
});
var redisClient = redis.createClient(6379,'localhost');
co(function*(){
var file = yield fs.$readFile('package.json','utf8');
yield redisClient.$set('file' , file);
assert.equal(file,yield redisClient.$get('file'));
yield redisClient.$setJson('user1' , {name:1});
var user1 = yield redisClient.getJson('user1');
var users = (yield mysqlClient.$query("select * from user"))[0];
var apps = yield mysqlClient.$q("select * from apps where uid=:uid" , {uid:1});
var count = yield mysqlClient.$q1("select count(*) as count from user where name=:name and pwd=:pwd" , {name:'name',pwd:'111'}));
console.log(users);
var con ;
try{
con = yield pool.$getConnection();
yield con.$beginTransaction();
yield con.$query("select some");
yield con.$query("insert some");
yield con.$query("update some");
yield con.$commit();
}catch(e){
yield con.$rollback();
console.error(e);
}finally{
if(con){
con.release();
}
}
var db = yield MongoClient.$connect('mongodb://localhost:27017/test');
var collection = db.collection('test_users');
var pUser = yield collection.$insert({name:"tom",age:10});
var test_users = yield collection.find({name:"tom"}).sort('name').limit(1).$toArray();
console.log(pUser,test_users);
var html = (yield request.$request({url:"http://www.google.com"}))[1];
var getHtml = (yield request.$get("http://www.google.com"))[1];
console.log(html ,getHtml);
})();