nodejs service

本文介绍了一个使用Node.js实现的服务层模板,该模板利用EventProxy控制业务流程,并通过MySQL连接池进行数据库操作。具体实现了检查用户信息的功能,包括事务处理、错误捕获及回滚机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

nodejs,service层模板
需要的模块包括:
var signDao = require('../dao/signDao.js');
var proxy = require('EventProxy'); //EventProxy是一个通过控制事件触发顺序来控制业务流程的工具。
var mysql = require('../util/MySQL')


方法:
exports.checkUser = function(name, pwd, callback) {
    var ep = new proxy();
    var result_code = 0;
    var errMsg = "";
    var connection;
    ep.emitLater('start');
    ep.on('start', function() {
//链接数据库
        mysql.pool.getConnection(ep.done('link'));
    });
    ep.on('link', function(conn) {
        connection = conn;
//开启事务
        connection.beginTransaction(ep.done('check'))
    });
    ep.on('check', function() {
        signDao.getUserInfo(connection, name, ep.done('setData'));
    });
    ep.on('setData',  function(data) {
        if (data.length > 0) {
            if (pwd != data[0].password) {
                result_code = 1;
                errMsg = "用户名或者密码错误";
            } else {
                result_code = 2;
                errMsg = "用户不存在";
            }
        }
//对数据进行的更新的操作一定要先提交,失败了可以回滚
        ep.emit('commit');
    })
    ep.on('commit', function() {
        ep.emit('finish');
    })
    ep.on('finish', function() {
//释放与数据库的链接
        connection.release();
        callback({
            result_code: result_code,
            errMsg: errMsg
        })
    })
    ep.fail(function(err) {
        //执行更新操作则需要回滚
        if (connection != null) {
            connection.rollback(function (err) {
                if (err) {
                    return callback(err);
                }
//释放与数据库的链接
                connection.release();
                callback(error);
            });
        } else {
            callback(error);
        }
    })
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值