当前位置: 首页 > news >正文

邂逅Node.js

首先先要来学习一下nodejs的基础(和后端开发有联系的)

再然后的学习路线是学习npm,yarn,cnpm,npx,pnpm等包管理工具

然后进行模块化的使用,再去学习webpack和git(版本控制工具)

Node.js是什么

官方对于nodejs的定义:Node.js是一个基于V8 JavaScript引擎的JavaScript运行时环境

他们的关系是:Node程序中含有V8引擎(可以执行JavaScript代码)

V8引擎可以嵌入到C++应用程序中,不论是Chrome还是Node.js都是嵌入了V8引擎来执行JavaScriptdiamante

在Chrome浏览器中,还需要解析,渲染HTML、CSS等相关渲染引擎,还需要提供支持浏览器操作的API、浏览器自己的事件循环等。。。

在Node.js中还需要进行文件系统读写、网络IO、加密、压缩解压文件等操作

Node程序用JS/C++/C语言进行编写

 我们编写的JavaScript代码会经过V8引擎,在通过Node.js的Bindings将任务放到Libuv的事件循环中,libuv是使用C语言编写的库,提供了事件循环、文件系统读写、网络IO、线程池 等内容

Node.js的应用场景

1.目前前端开发的 库都是以node包的形式进行管理

(npm本身是在node里的,当安装node的时候自动就会安装npm)

现在npm,yarn,pnpm工具成为前端开发使用最多的工具

越来越多的公司使用Node.js作为Web服务器开发、中间件、代理服务器

大量的项目都需要借助Node.js完成前后端渲染的同构应用

资深前端工程师需要为项目编写脚本工具(因为前端工程师编写脚本通常用JS)

前面说的都是Node的理论知识,现在开始实践,进行Node的安装

Node的安装

这是node的官网:

Node.js — 在任何地方运行 JavaScripthttps://nodejs.org/zh-cn点进去之后可以自选版本安装,本人的电脑之前已经安装过node了:

最好是选择较为稳定的版本进行安装,因为不容易出现问题,就算出现问题了也好解决一点(站在了前人的肩膀上)

安装完node之后可以直接借助node帮助我们运行js的代码,比如这样:

console.log("aaaa")
console.log("bbbb")
console.log("cccc")
console.log("dddd")
console.log("eeee")

这是因为node里面包含V8引擎可以解析JS代码并运行

node有版本的工具,你可以在你的电脑上装多个node的版本

工具有n和nvm,n这个工具就比较好用(是TJ开发的)但是不论是n还是nvm都有一个比较大的缺点:不支持Windows。啊?

但是有人在github上发布了nvm的支持Windows的版本(不是nvm本身)

在实际的开发中用一个版本就行勒,但是架不住有人想来回换版本

这是那个Windows版本的nvm工具:

coreybutler/nvm-windows: A node.js version management utility for Windows. Ironically written in Go.https://github.com/coreybutler/nvm-windows安装完之后就可以通过nvm list查看它帮你管理着什么样的包了

如果想要通过nvm安装东西,那就nvm install x.x.x(版本号),如果想要安装最新版,那可以用latest代替版本号

nvm use可以切换版本

如果你用的是n

安装:

npm install -g n

安装最新的lts版本:

n lts

安装最新的版本:

n latest

一个n就是查看所有的 版本(可以上下键切换,选定想要的之后回车就切换了)

Node的输入和输出

想要进行输入就要

const arg1 = process.argv[2]
const arg2 = process.argv[3]console.log(arg1,arg2)

再这样运行

输出的话就使用console.log就完事了,想要清空控制台就是console.clear,想打印函数的调用栈就console.trace,输出是这样的:

Node的REPL

什么是REPL?

REPL是Read-Eval-Print Loop的简称,翻译是“读取-求值-输出”循环

是一个简单的交互式的编程环境(说白了就是你打开网页然后F12一下的那个console栏)

在终端中敲一个node回车就可以来到这个环境了

想要清空内容就用cls

按两次Ctrl+C就可以退出了

这个没有git bash方便(git bash可以执行很多在Linux终端下可用的命令)

相关文章:

  • IEEE 802.1Q协议下封装的VLAN数据帧格式
  • 如何管理和优化内核参数
  • CNBC专访CertiK联创顾荣辉:从形式化验证到AI赋能,持续拓展Web3.0信任边界
  • matlab编写的BM3D图像去噪方法
  • 深入浅出IIC协议 - 从总线原理到FPGA实战开发 -- 第三篇:Verilog实现I2C Master核
  • 【蓝桥杯真题精讲】第 16 届 Python A 组(省赛)
  • 网络安全之网络攻击spring临时文件利用
  • AR 开启昆虫学习新视界,解锁奇妙微观宇宙
  • 流复备机断档处理
  • 当前主流的传输技术(如OTN、IP-RAN、FlexE等)
  • 能管理MySQL、Oracle、达梦数据库的桌面管理软件开源了
  • 【神经网络与深度学习】扩散模型之原理解释
  • 第 84 场周赛:翻转图像、字符串中的查找与替换、图像重叠、树中距离之和
  • 常用UI自动化测试框架
  • 基于服务器的 DPI 深度分析解决方案
  • #渗透测试#批量漏洞挖掘#LiveBos UploadFile(CVE-2021-77663-2336) 任意文件上传漏洞
  • CAP分布式理论
  • Linux 系统不终止进程的情况下关闭长连接
  • MCP专题 | 探索MCP服务器世界:增强AI能力的精选推荐
  • 裸金属服务器:解锁极致性能,拒绝虚拟化开销!
  • 甘肃白银煤矿透水事故仍有3人失联,现场约510立方米煤泥拥堵巷道
  • 周慧芳任上海交通大学医学院附属上海儿童医学中心党委书记
  • 海军“吉祥方舟”号医院船开展海上卫勤演练
  • 海南乐城管理局原局长贾宁已赴省政协工作,曾从河南跨省任职
  • 国际观察丨美中东政策生变,以色列面临艰难选择
  • CBA官方对孙铭徽罚款3万、广厦投资人楼明停赛2场罚款5万