学习 Node.JS 过程中总结的部分知识点

如何在 Node.js 环境中执行 JavaScript 代码

目录

前言

一、在Node环境中执行代码

二、模块

三、模块化

四、了解npm包

总结


前言

本文以作者自己看的懂的方式记录了node.js的知识点,并不全面喔,随着学习的推进,会加入更多内容的。


一、在Node环境中执行代码

1. 如何在 Node.js 环境中执行 JavaScript 代码

🔸 打开终端 (我是在vscode里面打开的集成终端)

🔸 输入: ⌜node 要执行的js文件的路径⌟, 就可以执行对应文件的代码

2. 终端中的❗️快捷键❗️

🔸 使用 ⬆ 键,可以快速定位到上一次执行的命令 (当我修改了文件中的代码要再次运行这个文件,就不用重新手动输入文件路径了)

🔸 使用 tab 键,能够快速补全文件路径

🔸 (Mac)使用 control + u 键,能够快速清空当前已输入的命令;(Window)使用 esc 键

🔸 (Mac)输入: ⌜clear⌟ 命令,可以清空终端;(Window)输入: ⌜cls⌟ 

二、模块

1. ❗️fs❗️文件系统模块 #安装node.js期间就会自动将fs等模块一起安装

# 如果要在 JavaScript 代码中使用 fs 模块来操作文件,则需要使用如下的方式先导入它: require('fs')

🔹 【 fs.readFile() 】方法,用来[读取]指定文件中的内容

语法格式: fs.readFile(path[, options], callback)

# 参数1: 必选参数。表示文件路径的字符串

# 参数2: 可选参数。表示以什么编码格式来读取文件 (默认 utf8)

# 参数3: 必选参数。回调函数,文件读取完成后,通过它拿到读取结果

🔹 【 fs.writeFile() 】方法,用来向指定文件中[写入]内容

语法格式: fs.writeFile(file, data[, options], callback)

# 参数1: 必选参数。指定一个文件路径的字符串

# 参数2: 必选参数。表示要写入文件的内容

# 参数3: 可选参数。表示以什么编码格式来写入文件 (默认 utf8)

# 参数4: 必选参数。文件写入完成后的回调函数

🔷 __dirname: 表示当前的文件所处的目录,能解决路径拼接错误的问题。 优点: 它所代表的值不会随着执行 node 命令时所处目录的变化而跟着变化;也不需要写很长的字符串

2. ❗️path❗️路径模块

# 如果要在 JavaScript 代码中使用 path 模块来处理路径,则需要使用如下的方式先导入它: require('path')

🔹 【 path.join() 】方法,用来将多个路径片段[拼接]成一个完整的路径字符串 # 就不要再用 “+” 进行拼接了

语法格式: path.join([...paths])

# 参数(...paths): <string>路径片段的序列,可传入任意多个路径片段

# 返回值: <string>

🔹 【 path.basename() 】方法,用来从路径字符串中,将文件名[解析]出来

语法格式: path.basename(path[, ext])

# 参数(path): 必选参数。<string>表示一个路径的字符串

# 参数(ext): 可选参数。<string>表示文件扩展名(后缀名)

# 返回值: <string> 表示路径中的最后一部分(文件名的部分)

🔹 【 path.extname() 】方法,可以获取路径中的文件扩展名部分

语法格式: path.extname(path)

# 参数(path): 必选参数。<string>表示一个路径的字符串

3. ❗️http❗️模块 # 用来创建 web 服务器的模块

# 导入方式: require('http')

🔹 【 http.createServer() 】方法,可快速[创建]一个 web 服务器实例

🔹 【 实例.listen(port,callback) 】方法,即可[启动]当前的 web 服务器实例

# 在终端使用 control + c 键,可以停止服务器

🔹 【 实例.on('request', function(){}) 】方法,可以为服务器实例[绑定]request事件处理函数

⭐︎ !req!请求对象,包含了与[客户端相关]的数据和属性,如:

(1) req.url: 是客户端请求的 URL 地址

(2) req.method: 是客户端的 method 请求类型

⭐︎ !res!响应对象,包含了与[服务器相关]的数据和属性,如:

(1) 【res.end()】: 向客户端发送指定的内容,并结束这次请求的处理过程

(2) 【res.setHeader(响应头,响应头的值)】: 设置中文内容的编码格式

三、模块化

1. 什么是模块化

编程领域中的模块化,就是遵守固定的规则,把一个大文件[拆]成独立并互相依赖的多个小模块

2. Node.js中的模块化

🤎 「module」对象: 在每个 js 自定义模块中都有一个 module 对象,它里面存储了和当前模块有关的信息

🤎 「moudle.exports」对象: exports默认等于一个空对象,在自定义模块中,可以使用module.exports 对象,将模块内的成员共享出去,供外界使用

🤎 「exports」对象: 是 moudle.exports 的简化,默认情况下,exports 和 module.exports 指向同一个对象。最终共享的结果,还是以 [module.exports] 指向的对象为准

四、了解npm包

1. 在哪下载❗️npm❗️包

https://www.npmjs.com/ 网站上搜索需要的包

https://registry.npmjs.org 服务器上下载需要的包

2. 如何下载包

通过一个包管理工具 [Node Package Manager],从服务器上下载包到本地 # 这个包管理工具随着Node.js被一起安装到了电脑上,不需要额外下载

⌜npm -v⌟ 命令,可以查看电脑上所安装的npm包管理工具的版本号

3. 在项目中安装包的命令

⌜npm install 包的完整名称⌟ 命令,或者 ⌜npm i 包的完整名称⌟ 命令,可以在项目中安装指

定名称的包 # 若同时安装多个包,包名之间用空格分隔

4. 初次安装包之后出现在目录的文件 # 这些文件都不要去修改!

(1) node.modules文件夹: 用来[存放]所有已安装到项目中的包。require() 导入第三方包

时,就是从这个目录中查找并加载包。

(2) package-lock.json配置文件: 用来记录 node_modules 目录下的每一个包的下载信息,

例如包的名字、版本号、下载地址等。

5. 如何安装!指定版本!的包

默认情况下,安装的都是最新版本的包。⌜npm install 包的完整名称@版本号⌟ 或 ⌜npm i 包的

完整名称@版本号⌟ 命令,可以下载指定版本的包

6. 包的语义化版本规范

# 包的版本号是以 “点分十进制” 形式进行定义的,总共有三位数字,例如: 2.24.0

✻ 第一位数字: 大版本

✻ 第二位数字: 功能版本

✻ 第三位数字: Bug修复版本

# 版本号提升的规则: 只要前面的版本号增长了,则后面的版本号归零。

7. 包管理配置文件

package.json: 包管理配置文件, (必须)存放在项目根目录中。用来记录与项目有关的一些配置

信息。如:

• 项目的名称、版本号、描述...

• 项目中都用到了哪些包

• 哪些包只在!开发期间!会用到

• 哪些包在!开发!和!部署!时都需要用到

# 第三方包的体积占整个项目体积的80%~90%, 不方便团队成员之间共享项目源代码。⚠️因此今后在项目开发中,一定要把 nodle_modules 文件夹,添加到 .gitignore 忽路文件中。

8. 快速创建package.json

⌜npm init -y⌟ 命令,可以在执行命令时所处的目录中,快速创建 package.json 这个包管理配置文件

# (1) 上述命令只能在[英文的目录下]成功运行!所以,项目文件夹的名称一定要使用英文命名,不要使用中文,不能出现空格。

# (2) 运行 npm install 命令安装包的时候,npm 包管理工具会[自动]把包的名称和版本号,记录到 packagejson 中。

9. !dependencies!节点

package json 文件中,有一个 dependencies 节点,专门用来记录用户使用 npm install

命令安装了哪些包 # 它是一个对象,里面的属性名是安装的包名,属性值是包的对应版本号

10. 如何一次性安装所有依赖包

⌜npm install⌟ 或 ⌜npm i⌟ 命令,可以一次性安装项目所有的依赖包 # npm 包管理工具会先读取 package.json 中的 dependencies 节点,读取到记录的所有依赖包名称和版本号之后,npm 包管理工具会把这些包一次性下载到项目中

11. 如何卸载包

⌜npm uninstall 包的名称⌟ 命令,可以卸载指定的包 # npm uninstall 命令执行成功后,会把卸载的包,自动从 packagejson 的 dependencies 中移除掉。

12. !devDependencies!节点

如果某些包[只在项目开发阶段]会用到,在项目上线之后不会用到,则建议把这些包记录到 devDependencies 节点中。

# 与之对应的,如果某些包在[开发和项目上线]之后都需要用到,则建议把这些包记录到 dependencies 节点中

⌜npm install 包名 --save-dev⌟ 或 ⌜npm i 包名 -D⌟ 命令,可以安装指定的包,并把包

记录到 devDependencies 节点中

# 查看官方提供的使用说明,就知道要把包安装到哪个节点中了

13. 切换 npm 的下包镜像源

# 解决下包速度慢的问题,可以把下载的服务器地址切换到国内的淘宝服务器,它是官方服务器的镜像

⌜npm config get registry⌟ 命令,可以查看当前的下包镜像源 #(下包的服务器地址)

⌜npm config set registry=服务器地址⌟ 命令,可以切换下包的镜像源

# 官方地址: https://registry.npmjs.org/   国内淘宝镜像源(地址): https://registry.npmmirror.com/


总结

先这么多内容,还有些没有整理,这些知识点依据内容是黑马程序员的视频课程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值