Appium基础 — 补充:Node.js介绍
Node.js是什么?
node.js 作为一个基于JavaScript的应用程序执行环境及接口集合。它使得原本仅限于浏览器沙盒环境中运行的JavaScript得以实现与操作系统的交互能力。至此JavaScript如同其他后台语言一般能够执行文件操作、监听网络端口、读取及写入数据库,并实现与操作系统底层的交互。
为什么我们要用Node.js?
node.js凭借无阻塞、基于事件的输入输出模型等特性,在允许应用进行持续轮询(Polling)以及构建comet式架构时实现了高并发(high concurrency)。由于传统服务器架构难以支撑数千级连接的同时运行,在服务端层面node.js凭借其内建的支持能力不仅实现了高效的异步处理功能,并且使原本需要经过大量优化才能达到的高性能水平得以通过其原生机制直接满足。
Node.js为什么能高并发?
为了实现高并发能力,在传统的同步模型中存在诸多限制。当服务器接收到一个新请求时,必须启动一个新线程来处理该请求。这个过程会伴随一定的资源消耗(包括创建开销),并且在执行过程中可能会占用大量内存资源,并且需要等待对文件操作及数据库读取等进行阻塞处理。完成任务后应立即关闭相关线程,并通过线程池来进行资源管理以提高效率。然而这些优化措施仍然无法从根本上解决时间与内存消耗随并发量增长呈线性增加的问题。
这种情况怎么解决?
解决办法其实就是刚才所说的非阻塞 和事件驱动这两个概念。这些术语听起来可能有些复杂,但其实在我们讨论的情境中它们并不算难以理解。你可以将非阻塞型服务器想象为一个不断循环运行的机制:每当有一个新请求到达时,这个循环就会接收该请求并将任务传递给其他进程(比如一个专门负责数据库查询的进程),然后触发回调函数(callback)。这个循环一旦完成当前任务就会立即接受下一个请求。这样一来,在数据库返回结果之前服务器就不会像之前那样停滞不前。当数据库返回结果时(或者当某个回调函数被触发时),系统会将结果传递回前端页面,并继续执行下一个循环任务。这种机制的好处在于,在任何时刻都可以处理大量并行的任务,并且只有在前端发生了具体事件时才会让后端进行响应。这就是所谓的事件驱动模式的表现形式。
Node 旨在解决什么问题?
Node 官方声明的目标是提供一种简便的构建可扩展的网络架构的方法。
总结:
-
从基本概念上讲,
Node.js等同于部署于服务器端的JavaScript编程语言.
如果你已经掌握了JavaScript编程语言的基础知识,并且了解面向对象编程的基本概念,那么你能够相对容易地掌握Node.js框架. -
Node.js 是基于 Chrome JavaScript 运行时构建的一个平台。
由 Google 开发的 V8 引擎赋予了 JavaScript 执行速度极快的能力。
在你的 Chrome 浏览器中,默认情况下 Javascript 和 Node.js 都会使用 V8 引擎运行。
该引擎会将你的 JavaScript 代码转换为更高效的机器码。
机器码属于底层编码语言,在执行时不需要预先解释即可直接被处理器处理。 -
Node.js是一种基于高效且轻量化的事件驱动机制与非阻塞输入输出模型的设计。 -
Node.js实现了向独立于浏览器环境发展的突破性进展:最初仅限于浏览器环境中的JavaScript执行环境已被成功转化为可在普通计算机上运行并作为完整应用程序使用的强大平台。
-
现代 JavaScript 已经突破了传统的网页开发局限性:不仅限于简单的交互操作与特效展示;而是提供了极其丰富的前端开发场景。
-
Node.js具备与众多主流后端语言(如 Python、PHP 等)并驾齐驱的功能表现能力。
Node.js上的NPM平台[https://link.zhihu.com/?target=https%3A//links.jianshu.com/go%3Fto%3Dhttps%252F%252Fwww.npmjs.com%252F "npm"] 是最全面、功能最强大的开源库生态系统。
重点:配套学习资料和视频教学
那么在这里我也精心准备了上述大纲的详细资料在下方链接如下


