$ npm install koa
$ npm install -g koa
var koa = require('koa');
var app = koa();
// logger
app.use(function *(next){
var start = new Date;
yield next;
var ms = new Date - start;
console.log('%s %s - %s', this.method, this.url, ms);
});
// response
app.use(function *(){
this.body = 'Hello World';
});
app.listen(3000);
alias node='node --harmony'
var koa = require('koa');
var app = koa();
// x-response-time
app.use(function *(next){
// (1) 进入路由
var start = new Date;
yield next;
// (5) 再次进入 x-response-time 中间件,记录2次通过此中间件「穿越」的时间
var ms = new Date - start;
this.set('X-Response-Time', ms + 'ms');
// (6) 返回 this.body
});
// logger
app.use(function *(next){
// (2) 进入 logger 中间件
var start = new Date;
yield next;
// (4) 再次进入 logger 中间件,记录2次通过此中间件「穿越」的时间
var ms = new Date - start;
console.log('%s %s - %s', this.method, this.url, ms);
});
// response
app.use(function *(){
// (3) 进入 response 中间件,没有捕获到下一个符合条件的中间件,传递到 upstream
this.body = 'Hello World';
});
app.listen(3000);
.middleware1 {
// (1) do some stuff
.middleware2 {
// (2) do some other stuff
.middleware3 {
// (3) NO next yield !
// this.body = 'hello world'
}
// (4) do some other stuff later
}
// (5) do some stuff lastest and return
}
var wrapper = require('co-mysql'),
mysql = require('mysql');
var options = {
host : 'localhost',
port : 3306 ,
database : 'test',
user: 'root',
password : 'rootroot'
};
var pool = mysql.createPool(options),
p = wrapper(pool);
...
var rows = yield p.query('SELECT 1');
yield this.render('index', {
title: rows[0].fieldName
});
...
})();
var promisify = require("promisify-node");
var db = promisify("myDbHelper");
...
var rows = yield db.getById('tableName', {id:1});
yield this.render('index', {
title: rows[0].fieldName
});
...
var genify = require('thunkify-wrap').genify;
var db = genify("myDbHelper");
...
var rows = yield db.getById('tableName', {id:1});
yield this.render('index', {
title: rows[0].fieldName
});
...
var config = require('./dbconfig');
var options = {
'host': config.db_host,
'port': config.db_port,
'database': config.db_name,
'user': config.db_user,
'password': config.db_passwd
}
var mysql = require('mysql');
var pool = mysql.createPool(options);
//内部对mysql的封装,执行sql语句
function execQuery(sql, values, callback) {
var errinfo;
pool.getConnection(function(err, connection) {
if (err) {
errinfo = 'DB-获取数据库连接异常!';
throw errinfo;
} else {
var querys = connection.query(sql, values, function(err, rows) {
release(connection);
if (err) {
errinfo = 'DB-SQL语句执行错误:' + err;
callback(err);
} else {
callback(null,rows); //注意:第一个参数必须为null
}
});
}
});
}
function release(connection) {
try {
connection.release(function(error) {
if (error) {
console.log('DB-关闭数据库连接异常!');
}
});
} catch (err) {}
}
//对外接口返回Promise函数形式
exports.getById = function(tablename, id){
return new Promise(function(resolve, reject){
var values = {id:id};
var sql = 'select * from ?? where ?';
execQuery(sql,[tablename, values], function(err, rows){
if(err){
reject(err);
}else{
resolve(rows);
}
})
});
}
routes/index.js
var db = require("../dbHelper");
...
var rows = yield db.getById('tableName', {id:1});
yield this.render('index', {
title: rows[0].fieldName
});
...
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有