Node.js

Node.js是什么

◼ 官方对Node.js的定义:
    Node.js是一个基于V8 JavaScript引擎的JavaScript运行时环境。
◼ 也就是说Node.js基于V8引擎来执行JavaScript的代码,但是不仅仅只有V8引擎:
  前面我们知道V8可以嵌入到任何C ++应用程序中,无论是Chrome还是Node.js,事实上都是嵌入了V8引擎来执行JavaScript代码;
  但是在Chrome浏览器中,还需要解析、渲染HTML、CSS等相关渲染引擎,另外还需要提供支持浏览器操作的API、浏览器自己的事件循环等;
  另外,在Node.js中我们也需要进行一些额外的操作,比如文件系统读/写、网络IO、加密、压缩解压文件等操作;

Node.js架构

◼ 我们来看一个单独的Node.js的架构图:
  我们编写的JavaScript代码会经过V8引擎,再通过Node.js的Bindings,将任务放到Libuv的事件循环中;
  libuv(Unicorn Velociraptor—独角伶盗龙)是使用C语言编写的库;
  libuv提供了事件循环、文件系统读写、网络IO、线程池等等内容;

Node.js的应用场景

◼ Node.js的快速发展也让企业对Node.js技术越来越重视,在前端招聘中通常会对Node.js有一定的要求,特别对于高级前端开发工程师,
Node.js更是必不可少的技能:
◼ 应用一:目前前端开发的库都是以node包的形式进行管理;
◼ 应用二:npm、yarn、pnpm工具成为前端开发使用最多的工具;
◼ 应用三:越来越多的公司使用Node.js作为web服务器开发、中间件、代理服务器;
◼ 应用四:大量项目需要借助Node.js完成前后端渲染的同构应用;
◼ 应用五:资深前端工程师需要为项目编写脚本工具(前端工程师编写脚本通常会使用JavaScript,而不是Python或者shell);
◼ 应用六:很多企业在使用Electron来开发桌面应用程序;

Node的版本工具

◼ 在实际开发学习中,我们只需要使用一个Node版本来开发或者学习即可。
◼ 但是,如果你希望通过可以快速更新或切换多个版本时,可以借助于一些工具:
    nvm:NodeVersion Manager;
    n:Interactively Manage Your Node.js Versions(交互式管理你的Node.js版本)
◼ 问题:这两个工具都不支持window
    n:nis not supported natively on Windows.
    nvm:nvmdoes not support Windows
◼ Window的同学怎么办?
    针对nvm,在GitHub上有提供对应的window版本:
    通过nvminstall latest 安装最新的node版本
    通过nvmlist 展示目前安装的所有版本
    https://github.com/coreybutler/nvm-windows
    通过nvmuse 切换版本

版本管理工具:n

Node的REPL

Node程序传递参数

为什么叫argv呢?

Node的输出

 ◼ 还有一些其他的方法,其他的一些console方法,可以自己在下面学习研究一下。
 https://nodejs.org/dist/latest-v16.x/docs/api/console.html

posted @ 2024-10-25 09:32  韩德才  阅读(10)  评论(0编辑  收藏  举报