node.js简单理解

2020.12.11 02:33

01.node.js究竟是什么?

Node.js是一个Javascript运行环境(runtime)

02.Node.js与JavaScript的区别是什么?

本质:

  • Javascript是一种web前端语言,主要用于web开发中,由浏览器解析执行

  • Node.js是一个可以快速构建网络服务及应用的平台,是用Javascript语言构建的服务平台,可用于后端建立服务器

区别:

  • Javascript 主要应用前端 是编程语言 客户端编程语言(需要浏览器的javascript解释器进行解释执行)

  • node.js 主要应用后端 1个平台 运行环境(一个基于Chrome JavaScript运行时建立的平台,它是对Google V8引擎进行了封装的运行环境)

简单的说node.js就是把浏览器的解释器封装起来作为服务器运行平台,用类似javascript的结构语法进行编程,在node.js上运行。

03.Node.js的优点?Node.js的缺点?

优点:

  • 1.事件驱动

  • 2.异步编程

  • 3.非阻塞模式的IO

  • 4.轻量高效

缺点:

  • 1.可靠性低

  • 2.单进程,单线程,只支持单核cpu,不能充分的利用多核cpu服务器。一旦这个进程崩掉,那么整个web服务就崩掉了。

04.Node.js适用场景?Node.js不适用的场景?

适用场景:

  • 1.JSON APIL ——构建一个Rest/JSON API服务,node.js可以充分发挥其非堵塞IO模型以及javascript对JSON的功能支持

  • 2.单页面、多Ajax请求应用——前端有大量的异步请求,需要服务器后端有极高的响应速度

  • 3.基于node.js开发Unix命令行工具——node.js可以大量产生子进程,并以流的方式输出

  • 4.流式数据——传统的web应用,通常会将HTTP 请求喝响应看成是原子事件。而node.js会充分利用流式数据这个特点,构建非常酷的应用

不适用场景:

  • cpu使用率较重、io使用率较轻的应用

05.node.js于java和区别

Node.js:

  • Node.js比Java更快 :node.js开发快,运行的效率也算比较高,但是如果项目大了就容易乱

  • Node.js本质上就是JavaScript,采用事件驱动,异步编程,为网络服务而生。而且JavaScript的匿名函数和闭包特性非常适合事件驱动、异步编程。Node.js的本质导致其特性就是开发快,运行效率高。

  • Node.js非阻塞模式的IO处理带来了在相对较低的系统资源耗用下高性能和负载能力,非常适合用作依赖其他IO资源的中间层服务(非常重要,因为node一般作为页面的轻server使用)。

  • Node.js轻量高效。在响应客户端之前,预计可能有很高的流量,但所需的服务器端逻辑不一定很多,可以说是数据密集型分布式部署环境的实时应用系统的完美解决方案。

  • 而Node.js的特性既是优点也是缺点,因为JavaScript不是静态类型语言,Node.js其实是一种解释语言,必然会导致在大项目中出现逻辑复杂,可维护性差等缺点。

  • javascript引擎基于事件的函数回调模型既是优势又是劣势:
    导致复杂逻辑失控,不能用于生产环境

node.js与java比较:

  • node.js比Java更快 :node.js开发快,运行的效率也算比较高,但是如果项目大了就容易乱,java开发慢,但是如果项目大、复杂的话,用java就不容易乱,管理起来比node.js省
  • javascript不是静态类型的语言,,要到运行时才知道类型错误,所以写的多了之后免不了会出现光知道有错但是找不到哪儿错的情况,所以测试就得些的更好更详细。
  • Node.js 前后端都采用Javascript,代表未来发展的趋势,而java则是现在的最流行的服务器端编程语言。
  • Node.js和Java EE——一种是解释语言,一种是编译语言

06.node.js于php的区别

  • 性能:
    在性能方面,Node.js 显然赢了这一局。由于 Node.js 遵循事件驱动的非阻塞I/O模型,与传统的后端技术相比,Node.js 能够处理大量的服务器请求。PHP 遵循一个阻塞模型,其中在服务器端创建多个线程来处理多个客户端请求,如果代码没有被优化,它会导致高服务器负载和响应时间。

  • 托管和部署:
    PHP 应用程序可以在包括 Nginx 和 Apache 以及 Windows 和 Linux 平台在内的任何服务器上运行,这使得部署过程变得更容易,而 Node.js,则需要具有 SSH 访问权限的虚拟服务器。因此,在没有任何控制台命令和 Secure Shell(SSH)知识的情况下,用 PHP 部署小型企业和个人应用会更好。

  • 外部依赖:
    Node.js 依赖关系较少,用几行代码就可以设置一个 Web 服务器。但运行 PHP 应用程序,就需要外部服务器软件。用 Node.js 的开发人员只需要 NPM(节点包管理器)就可以下载 Node 模块,这些模块可以轻松地集成到应用程序中,提供额外的功能。

  • CPU 扩展任务:
    Node.js 可能在高吞吐量方面表现优异,但是当应用程序繁重,需要 CPU 做大量工作时,Node.js 肯定会有所欠缺。在这种情况下,PHP 最适合做 Web 应用程序的后端。

  • 单页应用程序:
    如果您使用过 Gmail,那么您可能知道什么是单页应用程序(Single Page Application)。Web 应用程序在初始客户端请求时加载,之后根据客户端请求刷新的网页的特定部分。Node.js 与 AngularJS 的联合是开发单页应用程序的完美方案。

  • 开发环境:
    Node.js 可以用于桌面应用程序开发(Windows,Linux和Mac),移动应用程序开发(混合和跨平台应用程序),甚至构建基于控制台的应用程序。虽然有一些也可以使用 PHP 来开发,但是大多数开发人员不会这样做。

  • 社区支持:
    由于 PHP 比 Node.js 早诞生将近20年,所以在文档,API 和代码库等在线资源方面更为丰富。所以很有可能其他人也尝试了你想要用代码完成的事情并从中获得了帮助。另一方面,Node.js 虽然已经得到了开发者和组织的广泛关注,但是它支持开发者开发的资源缺相当少。

参考自:参考1 参考2 参考3

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值