node基础知识以及包管理

本文介绍了Node.js的基础知识,包括其定义、特点、应用场景和安装过程。接着详细讲解了包管理器npm的使用,如下载步骤、修改全局路径和介绍cnpm作为npm的国内镜像。最后,简述了yarn的特点和使用方法,强调了其与npm命令的对应关系。
摘要由CSDN通过智能技术生成

node基础知识

1.什么是 node.js

Node.js是-一个基于Chrome V8引擎的JavaScript 运行环境。

Node Standard Library ---node js标准库 (js是脚本语言通常不能操作本机文件 但是nodejs可以 实际上程序员本身编写就是js脚本 只不过瑞安达尔做了一个node Bindings(类似于翻译机)将你的js脚本语言翻译成C/C++语言 从而可以支持socket、http、file可以操作本机文件功能 但是他只负责翻译语言 其他的他借助了chrome V8 (js engine)、Async(libuv库) 、Event Loop--事件轮询(libuv库)实现的)

2.node特点

在这里插入图片描述

  • 优点。

    • 异步非阻塞的I/O (I/O线程池)。

      I/O:文件的读写、数据库的读写(后端人员口中的I/O操作80%都是数据库操作)

      I/O线程池:正常服务器在请求数据库数据时会有线程 而线程都是即时即用 用完销毁的 而线程池里面的线程则不用执行完后销毁 而是时刻保持清醒状态 当服务器启动时 线程池里面的线程就准备好了待命状态。反应速度响应快

    • 特别适用于I/0密集型应用。

      I/0密集型:意思就是频繁的进行I/O操作 频繁的进行数据库的读写操作

    • 事件循环机制。
      单线程。

      一般单线程都有事件循环机制

    • 跨平台

      一处编写 随处可用(window、linux、ios多个node版本 实质就是每个系统的版本都有类似于翻译官的工作)

  • 不足之处

    • 回调函数嵌套太多、 太深(俗称回调地狱)

      现在ES6的promise的async 和 await 基本上解决问题

    • 单线程, 处理不好CPU密集型任务

    • java服务器和node服务器对比

在这里插入图片描述

让我们把客户端当做餐厅吃饭的客人 服务器当做服务员 后端数据库当做后厨再来看待这个问题,客人要点餐(发出请求),此时服务员收到信息过来点餐(服务器收到请求做出相应响应),此时服务员点完餐交给后厨做餐(服务器到数据库拿数据),后厨做完餐交给服务员给到客人用餐(一次客户端请求成功完成)
java服务器:善于处理CPU密集型:指的是客户端和服务器之间的请求复杂(因为java是多线程 相当于多个服务员(服务员1号,服务员2号…) 所以无须担心 如果请求过多只要花钱(多找服务员)增加服务器配置即可,而且在一次请求中一个服务员会负责整个请求到底

node服务器:因为node是单线程 服务器中只有一个比较优秀的服务员(超级服务员)适用于I/O密集型指的是服务器与数据库之间的请求复杂而CPU请求不复杂的处理 node适用于一些中小型企业(差钱),而且因为在所有请求中只有一个超级服务员,所以node服务器服务员在单独一次请求中不会一直等待结果,会异步解决其他请求,这也正是node异步的特点

大型公司不差钱一般都是java服务器 因为node是单线程一旦服务器的超级服务员崩掉 就整体垮掉、而java服务器是多线程毁掉一个线程不会影响到其他线程 即node所谓成也单线程败也单线程

学习视频链接:https://www.bilibili.com/video/BV144411S7W7?p=3

3.Node.js的应用场景。

  • Web 服务API。
  • 服务器渲染页面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值