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);
}
})
}
需要的模块包括:
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);
}
})
}