尚硅谷2023版Node.js视频学习记录

295 阅读5分钟

每日日一言

> > 人生就是很多的第一次和无数次

视频链接:www.bilibili.com/video/BV1gM…

ps这个视频强烈推荐,讲的很细节,有很多基础常识,解决了我很多的疑惑

学习大纲:

  1. 计算机基础
  2. Node.js API
  3. 包管理工具
  4. HTTP协议
  5. Express框架
  6. Mongodb数据库
  7. 会话控制
  8. API接口
  9. 实战案例
  10. 服务器部署

浅说一下前端学习路线:

推荐参考博客:blog.csdn.net/longz_org_c… 大致流程:

=>前端三剑客(HTML+CSS+JS+项目实战)

=>node.js+Ajax+promise+Axios+git+webpack

=>前端框架+项目实战

=>微信小程序

一、Node.js是什么?

Node.js是一个开源的、跨平台的JavaScript运行环境

  • 浏览器中的JavaScript

image-20231109122126320.png

  • Node.js中的JavaScript

image-20231109122246175.png

二、fs模块

三、path模块

四、http模块

1、网址解析

image-20231110121155876.png

2、HTTP版本号

image-20231110121402076.png

3、请求报文

1、请求行:GET www.baidu.com/ HTTP/1.1

包括请求方法、URL、HTTP版本号

2、请求头:以键:值的形式存在

3、空行

4、请求体:任意格式,比较自由

4、响应报文

1、响应行:HTTP/1.1 200 OK

包括HTTP版本号、响应状态码、响应状态的描述

image-20231110122319023.png

image-20231110122442326.png

2、响应头:键值对格式,可以去MDN查看具体的响应头说明

3、空行

4、响应体:

image-20231110122621746.png

5、ip地址

32位分为四组 一组8位(也就是一个字节一组)

每一个字节(二进制)转化为十进制

最后形成ip地址

用来作为网络设备的标识,实现设备间的通信;就比如两台手机的视频通话

6、共享ip

其实是指广域网ip或公网ip;

路由器给我们分配的ip地址被称之为局域网ip(私网ip);

如果需要连接到互联网,就必需要到通信公司办理业务,这样路由器就再接一根线,就会拥有另外一个ip,也就是广域网ip(公网ip);

局域网ip 一般是192.168.0.0~192.168.255.255 可以被重复使用;

本机回环ip地址 127.0.0.1~127.255.255.254;

127.0.0.1 用自己的设备去访问这个地址其实就是自己设备本地;

7、端口

一台计算机可以有65536个端口(0~65535)

一个应用程序可以使用一个或者多个端口

用于实现不同主机之间的同一个应用程序的通信

8、创建http服务端

注意事项:停止服务的方法;更改代码之后保存需要重新启动服务更改才生效;

解决问题:

response.setHeader('content-type', 'text/html;charset=utf-8');
//解决响应结果中文乱码问题

重新打开另外一个终端显示端口已经被占用,此时需要把其中一个终端关闭,或者改端口号;

http协议端口默认80;https协议端口默认443;http服务端口常用3000,8080,8090,9000

如何找到被占用的端口号对应的进程?

打开资源监听器,网络里的侦听端口找到端口号对应的PID(进程ID);打开任务管理器,详情信息里的按照PID排序,找到需要的PID右键结束进程

8、静态资源

HTTP服务在哪个文件夹中寻找静态资源,哪个文件夹就是静态资源目录,也称之为网站根目录;

思考,vscode使用live-server访问HTMl时,他启动的服务网站根目录是谁?

答案:也就是去哪个文件夹找这个HTML,根目录就是这个文件夹

9、网页中的url

主要分为两类:相对路径和绝对路径(一般建议使用绝对路径)相对路径形式:

www.baidu.com/web 协议+域名+端口

image-20231110161347557.png

image-20231110162057434.png

image-20231110162210464.png

10、资源类型(mime类型)

image-20231110163018284.png

11、GET和POST请求总结

image-20231110193645892.png

image-20231110193726352.png

四、模块化

1、导入模块

image-20231111133935825.png

2、CommonJS模块化

module.exports、exports 以及require这些都是CommonJS模块化规范中的内容。 而Nodc.js 是实现了commonJs模块化规范,二者关系有点像JavaScript 与ECMAScript。

五、包管理工具

1、常用的包管理工具

  • npm
  • yarn
  • cnpm

2、npm

  • npm介绍

全称Node Package Manager (node的包管理工具);npm是node.js官方内置的包管理工具

  • npm安装

在安装node.js时会自动安装npm,所以如果你已经安装了node.js,那么可以直接使用npm;可以通过npm -v 命令查看版本号,显示版本号则代表安装成功!

  • npm初始化

image.png

但是可以使用快速创建命令,无需交互

npm init -yes或者npm init -y

  • mpm下载安装包

image.png

  • mpm安装指定版本的包

image.png

  • npm删除依赖

image.png

  • npm配置命令别名

image.png

  • npm配置淘宝镜像

image.png

3、cnpm

  • cnpm介绍

image.png

  • cnpm安装
npm install -g cnpm --registry=https://registry.npmmirror.com
  • cnpm操作命令

image.png

3、yarn

  • yarn介绍

image.png

这个官方有时候打不开;yarn下载安装包速度感觉最快啊

  • yarn安装
npm i -g yarn
  • yarn常用命令

image.png

说明:yarn的全局配置命令,还需要手动配置环境变量,才可以使用

  • yarn配置淘宝镜像
yarn config set registry https://registry. npmmirror.com/

yarn add  //yarn使用淘宝镜像安装包

yarn config list //查看yarn的配置项

4、npm和yarn的选择

image.png

5、扩展内容

image.png

五、express框架

六、mongodb数据库

//数据库命令
show dbs //显示所有的数据库
use bilibili //切换到某个指定的库并使用此库
db //显示当前所在库
db.dropDatabase() //删除当前库

//集合命令
db.createCollection('users') //为当前库创建一个集合
show collections //显示当前库中所有的集合
db.集合名.drop() //删除某个集合
db.集合名.renameCollection('newname') //为集合重命名

//文档命令
db.集合名.insert(文档对象);//为集合里插入数据
db.集合名.find();//查看集合里面所有字段
db.集合名.update({name:'张三'},{$set:{age:30}});//更新集合里的字段
db.集合名.remove({name:'张三'});//移除集合里某个字段

七、API接口

一般接口由如下几个部分组成

1、请求方法

2、接口地址

3、请求参数

4、响应结果

作用:客户端通过API接口访问服务端,服务端返回数据的结果

image.png

八、会话控制