几行代码搞定nodejs中的回调坑

方法如下
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这一新特性,详细了解可以点击这个链接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值