今天写了这段用node.js驱动mongoDB访问数据库的代码

function writeDB(receivedText, time, user) {var db_host = 'host';var port = 27017;var username = "usr";var pwd = "pwd";var db_name = "db";var result = "";var mongoClient = mongodb.MongoClient;mongoClient.connect(db_host, function (err, db) {if(err){console.log("error-1" + err);}result += "DB connected.\n";console.log(result);db.authenticate(username, pwd, function (err, res) {if(err){console.log("error0" + err);}result += "DB authenticated.\n";console.log(result);db.collection('note').insert({"text": receivedText,"time": time,"user": user}, function(err, res){if(err){console.log("error1" + err);}result += "data successfully written.";console.log(result);db.close();console.log("closed");return result;});});console.log("function1");});console.log("function2");return result;
}

调用方法为

    var dbResult = writeDB(receivedText, getTime(), "default user");console.log(dbResult);console.log("finished");res.send("succedded");

在实际运行中,log的显示结果为:

function2

finished
DB connected.

function1
DB connected.
DB authenticated.

DB connected.
DB authenticated.
data successfully written.
closed

也就是说,每次在数据库函数中执行callback函数的时候,都会认为这个函数已经执行结束了,继续执行该函数下面的语句,同时执行callback函数。

转载于:https://www.cnblogs.com/netaddi/p/5654580.html

关于node.js的思考相关推荐

  1. Node.js(一):基础知识

    一.浏览器 1 浏览器工作原理 1.1 浏览器的组成 人机交互部分(UI) 网络请求部分(Socket) JavaScript引擎部分(解析执行JavaScript) 渲染引擎部分(渲染HTML.CS ...

  2. 由Node.js事件驱动模型引发的思考

    引言 近段时间听说了Node.js,很多文章表述这个事件驱动模型多么多么优秀,应用在服务器开发中有很大的优势,本身对此十分感性去,决定深入了解一下,由此也引发了一些对程序设计的思考,记录下来. 什么是 ...

  3. 排查 Node.js 服务内存泄漏,没想到竟是它?

    背景 团队最近将两个项目迁移至 degg 2.0 中,两个项目均出现比较严重的内存泄漏问题,此处以本人维护的埋点服务为例进行排查.服务上线后内存增长如下图,其中红框为 degg 2.0 线上运行的时间 ...

  4. 2019 年,19 种方法让自己成为更好的 Node.js 工程师

    原文作者:Yoni Goldberg 译者:UC 国际研发 Jothy 写在最前:欢迎你来到"UC国际技术"公众号,我们将为大家提供与客户端.服务端.算法.测试.数据.前端等相关的 ...

  5. node.js搭建简单服务器,用于前端测试websocket链接方法和性能测试

    WebSocket简介 谈到Web实时推送,就不得不说WebSocket.在WebSocket出现之前,很多网站为了实现实时推送技术,通常采用的方案是轮询 (Polling)和Comet技术,Come ...

  6. node.js 搭建blog

    搭建开发环境并模拟交互数据 一.实验说明 下述介绍为实验楼默认环境,如果您使用的是定制环境,请修改成您自己的环境介绍. 三.功能模块分析与设计 四.搭建开发环境 LouBlog 使用 nodeJS 搭 ...

  7. 使用Node.js+Socket.IO搭建WebSocket实时应用

    Web领域的实时推送技术,也被称作Realtime技术.这种技术要达到的目的是让用户不需要刷新浏览器就可以获得实时更新.它有着广泛的应用场景,比如在线聊天室.在线客服系统.评论系统.WebIM等. 作 ...

  8. 【Node】node.js实现服务器的反向代理,解决跨域问题

    跨域对于前端来说是一个老大难的问题,许多方法如jsonp.document.domain + iframe...都有或多或少的问题,一个最佳实践就是通过服务器nginx做反向代理,但奈何不懂相关知识, ...

  9. node.js学习总结

    NodeJS介绍 1.概述: Node.js是基于Chrome JavaScript运行时建立的一个平台,实际上它是对Google Chrome V8引擎 进行了封装,它主要用于创建快速的.可扩展的网 ...

最新文章

  1. linux下软件编译安装 前提和方式
  2. Script:列出数据库中子表上没有对应索引的外键
  3. php商城多属性选择,ecshop后台商品属性详解之复选属性
  4. iOS开发针对对Masonry下的FPS优化讨论
  5. android 瀑布流_软件工程过程模型之瀑布模型
  6. std::cin 溢出_溢出:坦诚地工作与焦虑如何影响我的团队
  7. llvm vs gcc 我被雷到了, 速度相差300多倍,你还用GCC吗!【转】
  8. 苹果新专利曝光,可通过GPS和视觉识别器来识别车辆
  9. 进击的雨燕------------错误处理
  10. ubuntu 14.04中安装Jenkins
  11. Android 状态栏关于开发的几件事
  12. 消费者人群画像 python_如何正确打开相似人群画像算法
  13. html网页的前缀,用JavaScript判断CSS浏览器类型前缀的方法
  14. 【阶段总结】研二上学期总结
  15. k8s学习一:centos7单机安装k8s
  16. PaddleWeekly | 有了它,无需艺术细胞你也能绘制沙画
  17. python饼状图顺时针_Python:饼状图 (二十七)
  18. CAD文件进行自动化三维建模
  19. 重走长征路---OI每周刷题记录---4月12日 2015
  20. java foreach 遍历map_Java中遍历Map

热门文章

  1. GitLab安装后修改IP/域名
  2. js实现简单的循环打字效果(思路分享)
  3. Tomcat介绍及性能优化
  4. RHCE系列之LVM----理论篇
  5. python 初试 2
  6. POJ-1436 线段树 区间更新
  7. BZOJ1563:[NOI2009]诗人小G(决策单调性DP)
  8. 关于对FLASH开发,starling、starling feathers、starling MVC框架的理解
  9. Linux常用系统管理命令(top、free、kill、df)
  10. Learn Python The Hard Way(20)