nodejs, service layer template The
required modules include:
var signDao = require('../dao/signDao.js');
var proxy = require('EventProxy'); //EventProxy is a function that controls the business by controlling the order of event triggering tools for the process.
var mysql = require('../util/MySQL')
method:
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() {
//Link database
mysql.pool.getConnection(ep.done('link'));
});
ep.on('link', function(conn) {
connection = conn;
//Open transaction
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 = "Incorrect username or password ";
} else {
result_code = 2;
errMsg = "User does not exist";
}
}
//The operation of updating the data must be submitted first. If it fails, you can roll back
ep.emit('commit');
})
ep.on('commit', function() {
ep.emit('finish') ;
})
ep.on('finish', function() {
//Release the connection with the database
connection.release();
callback({
result_code: result_code,
errMsg: errMsg
})
})
ep.fail(function(err) {
//The update operation needs to be rolled back
if (connection != null) {
connection.rollback(function (err) {
if (err) {
return callback(err);
}
//Release the connection to the database
connection.release();
callback(error);
});
} else {
callback(error);
}
})
}
required modules include:
var signDao = require('../dao/signDao.js');
var proxy = require('EventProxy'); //EventProxy is a function that controls the business by controlling the order of event triggering tools for the process.
var mysql = require('../util/MySQL')
method:
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() {
//Link database
mysql.pool.getConnection(ep.done('link'));
});
ep.on('link', function(conn) {
connection = conn;
//Open transaction
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 = "Incorrect username or password ";
} else {
result_code = 2;
errMsg = "User does not exist";
}
}
//The operation of updating the data must be submitted first. If it fails, you can roll back
ep.emit('commit');
})
ep.on('commit', function() {
ep.emit('finish') ;
})
ep.on('finish', function() {
//Release the connection with the database
connection.release();
callback({
result_code: result_code,
errMsg: errMsg
})
})
ep.fail(function(err) {
//The update operation needs to be rolled back
if (connection != null) {
connection.rollback(function (err) {
if (err) {
return callback(err);
}
//Release the connection to the database
connection.release();
callback(error);
});
} else {
callback(error);
}
})
}