直接上两段代码,因为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代码时,要时刻保持异步思想,不然会掉入很多莫名其妙的坑里
解决问题的首选方案还是跟踪代码,靠猜测往往会浪费大量时间和精力走弯路....
带格式化地址: