直接上两段代码,因为nodejs基于异步和事件回调的解决方式,涉及到异步的时候,问题往往藏得很深,以下这个简单的问题困扰了很久.之前怀疑是各种问题,到处改.直到最后一步一步跟代码,跟操作数据库部分豁然大悟!!!全是异步搞的鬼...
错误代码:
1 2 3 4 5 6 7 8 | if (session){ //do somethings } else { if (cookie){ //query monggodb } next(); } |
修改后代码:
1 2 3 4 5 6 7 8 9 10 11 | if (session){ //do somethings } else { if (cookie){ queryMongodb(callback(){ next(); }); } else { next(); } } |
总结一下:
写node代码时,要时刻保持异步思想,不然会掉入很多莫名其妙的坑里
解决问题的首选方案还是跟踪代码,靠猜测往往会浪费大量时间和精力走弯路....
带格式化地址: