express 获取mysql执行结果的状态问题
2018-04-12 16:12
363 查看
一时半会的还没有习惯 js 的执行方式,设置状态量返回 undefined 后,我意识到,在 java 里使用的方法在 nodejs 是执行不通的~
所以需要使用回调函数。
那么该怎么使用呢?
首先要在函数里面传入回调函数这一参数。
我以我验证用户的代码作为示例。
我是将验证用户是否存在这一类函数写在单独的文件里,然后作为接口。
代码如下:exports.findUserByAccount = function(account,password,callback){
var sql = "select * from users where account = ?";
var params = [account];
db.Excute(sql,params,function(err,vals,fields){
if(vals.length == 0){
callback(false);
console.log("error!the user dose not exist!");
return;
}
else {
console.log("excute!");
if(vals[0].password == password){
callback(true);
console.log("find user success!");
}
else{
callback(false);
console.log("not err but the psw is incorrect!");
}
}
})
}可以看到我有一个 callback 的参数。然后将 sql 语句的执行状态作为结果在 callback 函数中返回。
调用代码如下:userDao.findUserByAccount("cc","cc",function(states){
console.log(states);
});这样就能获取 sql 语句的执行状态了。然后可以将这个状态返回给前端:
代码如下:exports.userLogin = function(req,res,next){
var password = req.body.password;
var account = req.body.account;
userDao.findUserByAccount(account,password,function(states){
if(states){
res.send('{"result":"true"}');
}else{
res.send('{"result":"false"}');
}
});
}这样就能够将状态返回给前端了。回调函数还是挺神奇的,但是我一时半会还用不习惯。
所以需要使用回调函数。
那么该怎么使用呢?
首先要在函数里面传入回调函数这一参数。
我以我验证用户的代码作为示例。
我是将验证用户是否存在这一类函数写在单独的文件里,然后作为接口。
代码如下:exports.findUserByAccount = function(account,password,callback){
var sql = "select * from users where account = ?";
var params = [account];
db.Excute(sql,params,function(err,vals,fields){
if(vals.length == 0){
callback(false);
console.log("error!the user dose not exist!");
return;
}
else {
console.log("excute!");
if(vals[0].password == password){
callback(true);
console.log("find user success!");
}
else{
callback(false);
console.log("not err but the psw is incorrect!");
}
}
})
}可以看到我有一个 callback 的参数。然后将 sql 语句的执行状态作为结果在 callback 函数中返回。
调用代码如下:userDao.findUserByAccount("cc","cc",function(states){
console.log(states);
});这样就能获取 sql 语句的执行状态了。然后可以将这个状态返回给前端:
代码如下:exports.userLogin = function(req,res,next){
var password = req.body.password;
var account = req.body.account;
userDao.findUserByAccount(account,password,function(states){
if(states){
res.send('{"result":"true"}');
}else{
res.send('{"result":"false"}');
}
});
}这样就能够将状态返回给前端了。回调函数还是挺神奇的,但是我一时半会还用不习惯。
相关文章推荐
- php中对MYSQL操作之批量执行,与获取批量结果
- MYSQL 执行数据库权限问题
- Python脚本之django---mysql-记录主机性能数据到数据库-web站点管理数据库及web显示命令执行结果
- 应用mysql_fetch_array()函数从数组结果集中获取信息
- jdbc 链接mysql执行sql语句出现中文乱码问题
- mysql在终端执行sql并把结果写入文件的方法
- nagios自定义脚本直接执行的结果与nrpe执行的结果不同的问题
- mysql执行存储过程中可能会遇到的问题
- mysql的两个获取结果方式
- 在.net中悄悄执行dos命令,并获取执行的结果
- sql server在高并发状态下同时执行查询与更新操作时的死锁问题
- tpcc-mysql 中tpcc_start进行基准测试的执行结果
- mysql中的只想得到一个结果,实际上返回多个的问题
- Mysql权限问题-导致数据库连接池对象获取不到
- MySQL中order by 结果不准确的问题及解决
- mysql 存储过程,执行结果"Error Code: 1329. No data - zero rows fetched, selected, or processed"
- C#调用cmd执行命令获取返回结果
- PHP使用mysql_fetch_object从查询结果中获取对象集的方法
- mysql 5.6 order by Limit执行效率问题
- linux的C程序 调用 shell脚本,获取shell的执行结果