什么是node.js

如果你去年注意过技术方面的新闻,我敢说你至少看到node.js不下一两次。那么问题来了“node.js是什么?”。有些人没准会告诉你“这是一种通过JavaScript语言开发web服务端的东西”。如果这种晦涩解释还没把你搞晕,你没准会接着问:“为什么我们要用node.js?”,别人一般会告诉你:node.js有非阻塞,事件驱动I/O等特性,从而让高并发(high concurrency)在的轮询(Polling)和comet构建的应用中成为可能。

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

当然这说的比较笼统,大家接着耐心的往下看;

什么是V8引擎?:
V8 JavaScript 引擎是 Google 用于其 Chrome 浏览器的底层 JavaScript 引擎。很少有人考虑 JavaScript 在客户机上实际做了些什么?
实际上,JavaScript 引擎负责解释并执行代码。

Node 本身运行 V8 JavaScript。服务器上的 JavaScript?没错,你没有看错。我们以往只在客户机上使用 JavaScript ,服务器端 JavaScript 可能是一个新概念,但这个概念本身并非遥不可及,因此为何不能在服务器上使用客户机上使用的编程语言?

下面我举一个在网上看到的一个别人举得小例子,能够帮助大家快速的理解node.js:

想泡壶茶喝。当时的情况是:开水没有;水壶要洗,茶壶茶杯要洗;火生了,茶叶也有了。怎么办?
办法甲:洗好水壶,灌上凉水,放在火上;在等待水开的时间里,洗茶壶、洗茶杯、拿茶叶;等水开了,泡茶喝。

办法乙:先做好一些准备工作,洗水壶,洗茶壶茶杯,拿茶叶;一切就绪,灌水烧水;坐待水开了泡茶喝。

办法丙:洗净水壶,灌上凉水,放在火上,坐待水开;水开了之后,急急忙忙找茶叶,洗茶壶茶杯,泡茶喝。

哪一种办法省时间?我们能一眼看出第一种办法好,后两种办法都窝了工。… 从这上可以一眼看出,办法甲总共要16分钟(而办法乙、丙需要20分钟)。…看来这是“小题大做”,但在工作环节太多的时候,这样做就非常有必要了。

…来源:华罗庚 统筹方法_百度文库

我们在用浏览器访问服务器的时候,就好像去茶叶铺买茶喝。
我们可以买回来自己沏,也可以在店里自带的茶座儿坐下来喝现成的。
如果我们买回来喝,参考华老师的课文,他自己都说了这是「小题大作」,因为16分钟和20分钟差不了太多,就我们自己和家人,慢生活4分钟也没什么毛病。但是如果我们在店里喝,那可不是咱一家儿等着。
比起16分钟的最少等候时间,第一桌多等4分钟,第二桌要同时来的话得多等24分钟,第三桌站起来走了,20多张桌子都闲着。忙活了半天,茶客不耐烦,茶铺不赚钱。

所以,茶叶铺不仅对于同一桌的不同请求要统筹安排,别认死理一件事不干完绝不开始下一件,甚至对于不同桌的不同请求也要尽量并行处理,比如等开水时可以帮好几桌点单、拿茶叶、洗茶杯茶壶,水开之前别闲着,水一开就给各桌上茶,让每桌客人都感觉嗖快嗖快的。

在这个故事里,
茶叶铺就是网络服务器。
我们自己就是浏览器。
我们要是不想浏览器事必躬亲,那就把活扔给服务器干;
当服务器一下子服务很多浏览器时就不能认死理非要串行操作,要灵活统筹,同时开始几件事,哪件完事关闭哪件。

这三个特征用江湖切口说就叫:
**服务器端JavaScript处理:server-side JavaScript execution
非阻断/异步I/O:non-blocking or asynchronous I/O
事件驱动:Event-driven**

总结:

Node.js是一个服务器端的、非阻断式I/O的、事件驱动的JavaScript运行环境,能够使得javascript脱离浏览器运行。

end

  • 18
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: Node.js 是一种基于 Chrome V8 JavaScript 引擎的后端 JavaScript 运行时环境,它可以在服务器端运行 JavaScript 代码,用于构建高性能、可伸缩性的网络应用程序。它的出现革新了服务器端开发的方式,使得前端开发人员可以使用相同的编程语言 JavaScript 来开发服务器端应用程序。 Node.js 可以处理大量的并发连接,因为它采用了件驱动、非阻塞 I/O 模型,使得应用程序可以在单个线程上处理大量的并发请求。同时,Node.js 的模块化体系结构使得开发人员可以轻松地构建复杂的应用程序,例如 Web 服务器、RESTful API、实时通信应用、微服务和分布式系统等。 由于 Node.js 的高效性、可伸缩性和灵活性,它在大型公司和初创企业中都得到了广泛应用,例如 Netflix、Uber、LinkedIn、PayPal 等。 ### 回答2: Node.js是一种基于Chrome V8引擎的开源、跨平台的JavaScript运行环境。它允许开发者使用JavaScript语言进行服务器端编程,处理大量并发请求,构建高性能的网络应用。 Node.js最初由Ryan Dahl于2009年创建,旨在解决传统服务器(如Apache)对于大量并发请求的性能问题。与传统服务器不同,Node.js采用了件驱动、非阻塞I/O模型,使得在单个线程中能够处理大量的请求,提高了应用程序的吞吐量和性能。 Node.js的核心特点包括: 1. 件驱动:通过件机制和回调函数,实现高性能的非阻塞I/O操作,避免了线程阻塞。 2. 高性能:基于Chrome V8引擎,具有快速的解析和执行JavaScript代码的能力。 3. 轻量和高效:Node.js具有较小的内存占用,可以轻松处理大量并发连接。 4. 跨平台:Node.js可以在各种操作系统上运行,例如Windows、Mac和Linux。 5. 丰富的模块库:Node.js拥有丰富的模块库,使得开发者可以方便地实现各种功能,如网络通信、文件操作等。 6. 社区活跃:Node.js有庞大的开发者社区,提供了大量的资源、工具和支持。 由于Node.js的优势,它已经被广泛应用于Web开发、服务器开发、实时通信等领域。例如,可以使用Node.js构建高性能的Web服务器、RESTful API、聊天应用、实时数据传输系统等。 总而言之,Node.js是一种快速、高性能、跨平台的JavaScript运行环境,为开发者提供了强大的工具和库,使得构建网络应用更加方便、高效。 ### 回答3: Node.js是一个开源的服务器端运行环境,可以解析和执行JavaScript代码。它基于Chrome V8引擎,构建了一个高效、轻量级的件驱动的非阻塞I/O模型。与传统的服务器端技术相比,Node.js具有很多独特的优势。 首先,Node.js件驱动和非阻塞I/O模型使得它能够处理大量的并发连接,提供高性能和可扩展性。这意味着Node.js可以处理海量的请求,而不会造成阻塞或延迟。 其次,Node.js使用JavaScript作为编程语言,使得前端开发人员可以轻松地转向后端开发。这样可以实现前后端代码的统一,减少了开发人员的学习成本和代码的重复编写。 此外,Node.js的模块化设计也是其特点之一。它拥有丰富的模块库,可以轻松实现各种功能。同时,Node.js也支持第三方模块的开发和集成,加快了开发效率。 Node.js的应用场景非常广泛。它常用于构建实时的Web应用、聊天软件、网络代理等。Node.js还被广泛应用于物联网、大数据处理、人工智能等领域。 总之,Node.js是一个强大、高效、易用的服务器端运行环境,提供了一种新的开发方式,为开发人员带来了更多的便利和创造力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值