NodeJs是js的运行时,意味着可以在浏览器外运行js。可以使用nodejs来构建服务器端应用、CLI应用、Web API,甚至用electron构建桌面端应用。

使用nvm来管理node版本。

在终端输入node 进入REPL环境,可以测试和执行代码,mac系统使用control+d退出REPL环境。

执行某个js文件:node xxx.js 

 

在vscode中必须安装的拓展

Document This:注释工具

ESLint

npm Intellisense:快速导入包

Prettier

REST Client:可以将http发起的api请求放在单独文件中

 

创建第一个Node项目

npm init 然后完成创建package.json的步骤

code package.json 打开vscode

 

lock文件是什么

每当package.json和node_modules下的文件被npm修改,lock文件就会更新。用来保证依赖项安装的相同,包括不同机器不同时间的所有依赖关系。

此文件需要提交到仓库中,防止与其他开发者之间出现无法构建的现象。还有一个原因,没有这个文件就不能执行npm ci指令,npm ci和npm install类似,但它在自动化环境中运行,就是基于lock文件安装所有依赖项。

 

如何更新依赖项

键入npm outdated,会列出过期的包。黄色文字代表现有最新的包,但版本不在你的package.json文件可更新范围;红色文字代表在可更新范围,可以放心的去更新。

键入npm update,会更新所有红色的包至最新版,

如何指定匹配更新版本?

package.json中可以看到3个数字组成的版本号,分别为主版本(大号)、次版本(中号)、补丁版(小号)。

^脱字符:表示你允许中号和小号版本更新,禁止大号更新,通常可以安全更新;

~:限制只能更新小号,对关键包很有用(编译器或Linter),有时也是有新功能必须要更新;

*:取代大号的位置,表示允许任何更新,总是会更新到最新版本;

不想有任何更新就不加符号。

如何更新黄色的包?

npm install express@latest

(Version Lens扩展可以检查包更新)

 

漏洞管理

npm audit 可以获取漏洞的种类信息,哪些包受影响,以及如何去解决

npm audit fix 会尝试通过更新包来解决问题(在可用的版本范围内)

npm audit fix --force 允许更新版本范围外的(可更新主版本)

 

处理文件系统

在Node应用中,你可能会去处理文件系统,是否读取配置文件、为web服务抓取静态文件、或将日志写入磁盘。

通常会用到fs和path。

fs模块:与文件系统交互,最常用方法是readdir,如果同步版本就是readdirSync,该方法从初始路径开始,接着返回字符串数组,含有该文件夹中所有可找到的文件。可以写入选项,像withFileTypes: true,就会返回一系列对象而不是数组字符串,包含文件的元数据,就可以确定某个东西是文件夹或者磁盘上的文件。

path模块:给我们文件系统路径信息,不必去操作文件系统自身,通过该模块可以查看路径扩展、查看文件名字、以及路径内使用的分隔符,确保知晓操作系统特定的文件分隔符(/\朝向问题)