Node.js+npm+express

本文介绍了Node.js的基础概念,如其作为JavaScript后端环境的应用,终端的使用,以及fs、path和http模块的详细操作。还涵盖了模块化、npm包管理、express框架、CORS跨域资源共享和jsonp接口等内容。
摘要由CSDN通过智能技术生成

  一、Node.js

1、定义

node.js是一个跨平台JavaScript运行环境,使开发者可以搭建服务端的JavaScript应用程序

作用:使Node.js编写服务器端程序

前端工程化:开发项目直到线上,过程中集成的所有工具和技术

二、Node.js中的JavaScript运行环境

注意:1.浏览器是JavaScript的前端运行环境

2.Node.js是JavaScript的后端运行环境

3.Node.js中无法调用BOM、DOM等浏览器内置API

三、什么是终端

1、终端是专门为开发人员设计的,用于实现人机交互的一种方式。

2.cmd或者powershell打开,cd+路径

3.终端中的快捷键:

①↑快速定位到上一次命令

②tab键能够快速补全路径

③esc键快速清空当前已输入的命令

④clear/cls 清空终端所有的命令

四、fs文件系统模块

1.fs模块是Node.js官方提供的、用来操作文件的模块,它提供了一系列的方法和属性,用来满足用户对文件的操作需求

例如:fs.readFile()方法,用来读取指定文件中的内容

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

2、fs.readFile()语法格式

参数解读:

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

参数2:可选参数,表示以什么编码格式来读取文件

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

3、判断文件是否读取成功

可以判断err是否为null,从而知晓文件读取结果

4.fs.writeFile()语法格式

参数解读:

参数1:必选参数,需要指定一个文件路径的字符串,表示文件的存放路径

参数2:必选参数,表示要写入的内容

参数3:  可选参数,表示以什么格式写入文件内容,默认值是utf8

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

5.判断文件是否写入成功

可以判断err对象是否为null,从而知晓文件写入的结果;

五、path路径模块

1.什么是path路径模块

path模块是Node.js官方提供的、用来处理路径的模块,它提供了一系列的方法和属性,用来满足用户对路径的处理需求

例如:

path.join()方法,用来将多个路径字段拼接成一个完整的路径字符串

path.basebname()方法,用来从路径字符串中,将 文件名解析出来

  

2.path.join()语法格式

参数解读:

1 、...paths<string>路径字段的序列

2、返回值<string>

代码示例

注意:今后凡是涉及到路径拼接的操作,都要使用path.join()方法,不要直接使用+

3.path.basename()语法格式

参数解读:

1、path<string>必选参数,表示一个路径的字符串

2、ext<string>可选参数,表示文件拓展名

3、返回<string>表示路径中的最后一部分

4、path.extname()语法格式

六、http模块

6.1什么是http模块

客户端:在网络节点中,负责消费资源的电脑

服务端:负责对外提供网络资源的电脑

http模块是Node.js官方提供的、用来创建web服务器的模块,通过http模块提供的http.createServer()方法,就能方便的把一台普通的电脑,变成一台web服务器,从而对外提供web资源服务

6.2进一步理解http模块的作用

服务器和普通电脑的区别在于,服务器上安装了web服务器软件,例如IIS,Apache等,通过安装这些服务器软件,就能把一台普通电脑变成一台web服务器

6.3服务器相关概念

6.4 创建最基本的web服务器

创建web服务器基本步骤

1.导入http模块

2.创建web服务器实例

3.为服务器实例绑定request事件,监听客户端请求

4.启动服务器

req请求对象

只要服务器接收了客户端的请求,就会通过调用server.on()为服务器绑定的request事件处理函数

如果想在事件处理函数中,访问与客户端相关的数据或属性,可以采用如下方式:

res响应对象

在服务器的事件处理函数中,如果想访问与服务器相关的数据或属性,可以采用如下方式:

解决中文乱码的问题

当调用res.end()方法,向客户端发送中文的时候,会出现乱码的问题,此时,需要手动设置内容的编码格式

2、模块化

2.1什么是模块化

模块化是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说,模块是可组合、分解和更换的单元。

2.2模块作用域

和函数作用域类似,在自定义模块中定义的变量、方法等成员,只能在当前模块内被访问,这种模块级别的访问,叫做模块作用域。

好处:防止了全部变量污染的问题

  Node.js 中模块的分类
Node.js 中根据模块来源的不同,将模块分为了 3 大类,分别是:
(1) 内置模块 (内置模块是由 Node.js 官方提供的,例如 fs、path、http 等)
(2) 自定义模块 (用户创建的每个 .js 文件,都是自定义模块)
(3) 第三方模块 ( 由第三方开发出来的模块 ,并非官方提供的内置模块,也不是用户创建的自定义模块, 使用前需要先下载 )

2.3 exports

由于module exports写起来比较复杂,为了简化向外共享成员的代码,Node提供了exports对象。默认情况下,exports和module exports指向同一个对象,最终共享的结果还是以module exports指向的对象为准。

2.4 exports 和 module exports使用误区

时刻谨记,requires()模块时,得到的永远是module exports指向的对象

注意:为了防止混乱,建议不要在同一个模块中使用exports 和 module exports

2.5 Node.js中的模块化规范

Node.js遵循了CommonJS模块化规范,CommonJS规定了模块的特性和各模块之间相互依赖

CommonJS规定:

1、每个模块内部,module变量代表当前模块

2、module变量是一个对象,它的exports属性(即module exports)是对外的接口

3、加载某个模块,其实是加载该模块的module exports属性,require()方法用于加载模块

3、包

3.1什么是包

Node.js中第三方模块又叫做包

3.2包的来源

包是由第三方个人或团队开发出来的,免费供所有人使用(免费且开源)

3.3为什么需要包

3.4从哪里下载包

二、npm初体验

1.格式化时间的传统做法

2.格式化时间的高级做法

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

npm install +包的完整名称

install 可改为i

4.初次安装 后多了哪些文件

5.安装指定版本的包

6.包的语义化版本规范

2、包管理配置文件

1.多人协作的问题

包太大,源代码小,github只上传源代码,别人联网下包就行。

2.如何记录项目中安装了哪些包
3.快速创建package.json

4.dependencies节点

5.一次性安装所有的包

可运行npm install( 或 npm i)一次性安装所有的依赖包

6.卸载包

npm uninstall +包名

7.devDependencies节点

3、解决下包速度慢的问题

1.为什么下包速度慢

2.npm 淘宝镜像服务器

3.切换npm的下包镜像源

4.nrm

4、 包的分类

包分为两类:项目包、全局包

1.项目包

哪些被安装到项目的 node_modules目录中的包,都是项目包

2、全局包

3. i5ting_toc

3.规范的包结构

5、模块化的加载机制

5.1 优先从缓存中加载

5.2内置模块的加载机制

5.3自定义模块的加载机制

5.4第三方模块的加载机制

三、express

1、1express简介

1、什么是express

2、进一步理解express

3、express能做什么

1.2 express的基本使用

1.安装

2.创建基本的web服务器

3、监听GET请求

4、监听POST请求

5、把内容响应给客户端

6、获取URL携带的查询参数

7、获取URL中的动态参数

1.3托管静态资源

1.1express.static()

2.托管多个静态资源目录

3.挂载路径前缀

1.4 nodemon

1.为什么要使用nodemon

2.安装nodemon

3.使用nodemon

2.express路由

2.1路由的概念

1.什么是路由

广义上来讲,路由就是映射关系

2.express中的路由

3.express中路由的例子

4.路由的匹配过程

2.2路由的使用

2.模块化路由

3.创建路由模块

4.注册路由模块

5.为路由模块添加前缀

3、express中间件

3.1中间件的概念

中间件,特指业务流程的中间处理环节。

3.2 express中间件的调用流程

当一个请求到达Express的服务器之后,可以连续调用功能多个中间件,从而对这次请求进行预处理。

3.3 express中间件的格式

3.4 next函数的作用

next函数是实现多个中间件连续调用的关键,它表示把流转关系转交给下一个中间件或路由

3.2express中间件的初体验 

1.定义中间件函数

2.全局生效的中间件

3.定义全局中间件的简化形式

4.中间件的作用

多个中间件之间,共享一份req和res,基于这样的特性,我们可以在上游的中间件中,统一为req或res对象添加自定义的属性或方法,供下游的中间件或路由进行使用。

5.定义多个全局中间件

可以使用app.use()连续定义多个全局中间件,客户端请求到达服务端之后,会按照中间件定义的顺序依次进行调用,示例代码如下:

6.局部是生效的中间件

不使用app.use()定义的中间件,叫做局部生效的中间件,代码如下

7.定义多个局部中间件

8.了解中间件的5个使用注意事项

4.使用express 写接口

1.创建基本的服务器

2.创建API路由模块

3.编写GET接口

4.编写POST接口

注意:如果要获取URL-encoded格式的请求体数据,必须配置中间文件app.use(express.urlencoded({extended:false}))

5.CORS跨域资源共享

1.接口的跨域问题

2.cors中间件解决跨域问题

3.什么是cors

4. cors注意事项

5.cors请求分类

客户端在请求cors接口时,根据请求方式和请求头的不同,可以将cors的请求分为两大类,分别是:

1、简单请求

2、预检请求

6.简单请求

7.预检请求
8.简单请求和预检请求的区别

6、jsonp接口

1.回顾jsonp概念和特点

概念:浏览器端通过<script>标签的src属性,请求服务器上的数据,同时,服务器返回一个函数的调用,这个请求数据的方法叫做jsonp。

2.创建jsonp接口的注意事项
3.实现jsonp接口的步骤

4.实现jsonp接口的具体代码

5.在网页中使用jQuery发起Jsonp请求

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值