方法如下
function sync(gen){
var genObj = gen(resume);
function resume() {
genObj.next(arguments);
}
genObj.next();
}
文件读取实例
app.get('/fsdemo', function (req, res) {
"use strict";
var fs = require('fs'),
run = sync;
run(function *gen(callback) {
let ret = yield fs.readFile('C:\\Users\\Administrator\\Desktop\\备忘.txt', 'utf-8',callback);
res.json(ret);
});
});
database操作如下
app.post('/loginAction',function(req,res){
var conn = require('../../connection')(app),
crypto = require('crypto'),
md5 = crypto.createHash('md5'),
run = sync,
data = req.body;
md5.update(data.password);
var username = data.username,
password = md5.digest('hex');
var sql = 'select * from' +
' t_user where ' +
'username =\''+username+'\' ' +
'and password = \''+password+'\'';
run(function * gen(callback){
var ret = yield conn.query(sql,callback);
if(ret[0]){
console.log(ret[0]);
console.log('你特么弄错了!!');
}else{
console.log(ret[1]);
if(ret[1].length == 0){
console.log('用户名或者密码输入错误!');
}else{
console.log('登录成功!');
req.session.user = ret[1][0];
// res.json({'msg':'登录成功啦'});
//res.render('admin/dashboard',{user:req.session.user});
res.redirect('/dashboard');
}
}
});
});
只要是利用了ES6中的Generator这一新特性,详细了解可以点击这个链接