nodejs-mysql异步(2)
来源:互联网 发布:长得帅的女生知乎 编辑:程序博客网 时间:2024/05/17 07:34
之前有说到用mysql存在很大的异步的问题。异步是什么我就不说了。随便找个博客就知道了。
我的内心崩溃:我忍无可忍。换了一种方法:直接把mysql移动到了server。。。
然后我想说,我把mysql写在了user.js模块里面,然后我在server.js里想要获取user.js导出的user模块中的内容,但是本来就异步,再用模块就老式拿不到我想要的值,每次值拿了为undefined,数据库还没开始。郁闷。。。
比如以前的代码这样:
server.js
user.jsapp.get('/',function(req,res){ //主页面 console.log("server.js--主页面请求") ; var length = user.findUser() ; console.log("server.js--" + length) ; //undefined}console.log("server.js--" + user.personLength) ; //undefined
mydatabase.query( findUserQuery, function(err,result){ console.log("user.js--" + result[0].length ) ; user.personLength = result[0].length ; //用user模块导出用户个数length return result[0].length ; //用user函数返回值返回length}
好吧,那么这个nodejs的异步就搞死我了。
解决: 我现在用的Async模块进行异步的处理。
1. 导入 npm install Async --save
2. 在js文件加入
var async = require('async') ;
修改的js:
sever.js
user.findUser = function(){
async.waterfall([ //查询
function(callback){
mydatabase.query( findUserQuery, function(err,result){
var resu = result.length ; c
allback(err,resu) ;
} ) ;
},
function(resu,callback) {
console.log( "user.js--人数:" + resu );
user.personLength = resu;
var over = '"user.js--查询用户结束"' ;
callback(null,over) ;
}],function(err,over){
if(err)
console.log(err ) ;
else{
console.log( over ) ;
return function(){ //没有作用
return user.personLength ;
}
}
})return function(){ //起作用,在server.js中产生效果 return user.personLength ; }}
user.js
结果: conosle控制台user.findUser = function(){async.series([
function(callback){
var re = user.findUser( ) ;
console.log("server.js--" +re) ; // server.js-- function(){return user.personLength} 这里的re其实是
//findUser的返回函数值,!!!而且是字符串啊!!!
callback(re) ; }
],function(err,personLength){
console.log("server.js--" +personLength) ;
})
}
服务器开启: 8080server.js--function (){ //字符串---- return user.personLength ; }server.js--user.js--人数:12"user.js--查询用户结束"
我的内心崩溃:我忍无可忍。换了一种方法:直接把mysql移动到了server。。。
server.js
app.get('/',function(req,res){ //主页面 // console.log("server.js--主页面请求") ; async.waterfall([ //查询 function(callback){ mydatabase.query( user.findUserQuery, function(err,result){ var resu = result.length ; callback(err,resu) ; } ) ; } ],function(err,personNumber){ if(err) console.log(err ) ; else{ console.log( "server.js-- " +personNumber) ; //server.js --12 res.render('./pages/index',{ title: '未登录' }) ; } })}) ;
user.js
var user = { findUserQuery: 'SELECT * FROM ' +userTable , insertUserQuery: 'INSERT INTO ' +userTable +' (NAME,PASSWORD,MINORITY) VALUES (?,?,?)' , searchUserQuery: 'SELECT * FROM ' +userTable + ' WHERE NAME=? AND PASSWORD=?'} ;
这样是能获取到数值的,但是不知道为什么 我不太爽------
虽然我直接换了mysql的地方,但是我还是不会放弃刚刚那样传值,等我休息休息再来!
阅读全文
0 0
- nodejs-mysql异步(2)
- nodejs 异步
- nodejs异步
- nodejs学习笔记-2-mysql
- Nodejs 异步框架async
- nodejs 异步优化
- Nodejs 异步 I/O
- nodejs-异步I/O
- nodejs异步控制
- nodejs异步编程
- nodejs异步实践
- NodeJs 畅谈异步
- nodejs 异步编程 async
- Nodejs异步,回调
- nodejs的异步调用
- NodeJS -- 异步I/O
- NodeJs学习 -- 异步机制
- nodejs mysql
- C# 调用SVN: 提交与更新
- python中reduce()函数
- jvm内存模型
- HTTP Status 500
- thinkPHP易错点集合
- nodejs-mysql异步(2)
- 妨碍开发人员获得高性能的三种行为!
- Git基本命令
- pomelo源码解析之compnent组件启动
- 高山算法?其实是贪心啦!
- [Objective-C]关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)
- java Map与Object互转
- MySQL存储引擎详解
- Android设备拍照详解