Node 的事件轮询机制图谱和中间层架构图谱

JavaScript045

Node 的事件轮询机制图谱和中间层架构图谱,第1张

这篇文章主要总结两个图谱:Node 的事件轮询机制图谱和 Node 作为中间层在大型应用下的架构图谱。

注:文中的内容大多是我自己的理解,并不一定正确,如果您在阅读的过程中发现了任何错误,欢迎告诉我,以便改正。

关于 Event Loop 和异步 IO,可以参考这两篇文章:

Node 的事件轮询机制图谱如下:

图谱说明:

下面是一个以 Node 为中间层的架构图谱:

图谱说明:

上面就是使用 Node 作为中间层的一个比较大型的应用的架构图谱。

完。

node.js中删除monogodb数组子文档使用$pull关键词。

1、Node.js是一个Javascript运行环境(runtime),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。

2、Node.js可以在不新增额外线程的情况下,依然可以对任务进行并发处理 —— Node.js是单线程的。它通过事件轮询(event loop)来实现并发操作,对此,我们应该要充分利用这一点 —— 尽可能的避免阻塞操作,取而代之,多使用非阻塞操作。

实现代码如下:

var filter = {_id: suggestID}

var update = {$pull: {replies: {rid:opts.doc.rid}}}

return opts.dbs.csdb.collection("suggests").findOneAndUpdateAsync(filter, update, {upsert: false})