nodejs mongodb3.6.2 insertOne callback问题
2021/9/14 19:08:27
本文主要是介绍nodejs mongodb3.6.2 insertOne callback问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
npm mongodb包版本:3.6.2
mongodb服务版本:4.0.1
想要模拟一下mongodb服务进程挂掉时,起用备用文件日志。
模拟流程:启动应用时,正常连接mongo,开个10s定时器,写入mongo数据,在10s内手动停掉mongo服务。
示例代码: const db = mongodb.db('playlog'); console.log('db2'); try { console.log('collection1'); const collection = db.collection('play_test'); console.log('collection2'); console.log('isConnected:', mongodb.isConnected()); collection.insertOne({ k: 22 }, function(err, result) { console.log(err); }); console.log('haha', res); } catch (err) { console.log('got error', err); }
上面代码,发现console.log从db2打到haha,但没有调用insertOne函数的callback。
改用await方式:
const db = mongodb.db('playlog'); console.log('db2'); try { console.log('collection1'); const collection = db.collection('play_test'); console.log('collection2'); console.log('isConnected:', mongodb.isConnected()); await collection.insertOne({ k: 22 }); console.log('haha'); } catch (err) { console.log('got error', err); }
发现console.log只走到isConnected: false,后续没任何日志,catch也没有日志。
再改用下面代码:
const db = mongodb.db('playlog'); console.log('db2'); try { console.log('collection1'); const collection = db.collection('play_test'); console.log('collection2'); console.log('isConnected:', mongodb.isConnected()); await collection.insertOne({ k: 22 }, function(err, result) { console.log(err); }); console.log('haha', res); } catch (err) { console.log('got error', err); }
这时跟第一种情况一样,打印到haha,无catch,无insertOne callBack。
换到4.x版本正常,但4.x需要node12.9+版本。线上是10.15,不能随便升级到4.x,只能自己判断.
这篇关于nodejs mongodb3.6.2 insertOne callback问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15useCallback教程:React Hook入门与实践
- 2024-11-15React中使用useContext开发:初学者指南
- 2024-11-15拖拽排序js案例详解:新手入门教程
- 2024-11-15React中的自定义Hooks案例详解
- 2024-11-14受控组件项目实战:从零开始打造你的第一个React项目
- 2024-11-14React中useEffect开发入门教程
- 2024-11-14React中的useMemo教程:从入门到实践
- 2024-11-14useReducer开发入门教程:轻松掌握React中的useReducer
- 2024-11-14useRef开发入门教程:轻松掌握React中的useRef用法
- 2024-11-14useState开发:React中的状态管理入门教程