Node笔记

一、Node

1.1简介

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

Node.js官网 https://nodejs.org

img

查看node.js版本号中断指令

node –v

内置API

fs 模块是 Node.js 官方提供的、用来操作文件的模块。

path 模块是 Node.js 官方提供的、用来处理路径的模块。

http 模块是 Node.js 官方提供的、用来创建 web 服务器的模块。

1.2 http创建最基本的web服务器

  1. 获取请求url
  2. 设置未处理的响应内容为404页面
  3. 判断用户请求的是否为/或/index.html首页
  4. 根据不同url响应不同的html内容
  5. 设置Content-Type响应头,防止中文乱码
  6. 使用res.end()把内容响应给客户端

img

二、模块化

包管理指令

1.快速创建 package.json

1
npm init -y

2.安装依赖包

1
2
npm install  //npm i 一次性安装项目依赖的所有包
npm i 包名 //核心依赖包 会记录到dependencies节点

3.卸载制定的包

1
npm uninstall 包名

4.安装只在项目开发阶段使用的包

1
2
npm i 包名 -D
等价于 npm install 包名 --save-dev

5.安装全局包

1
npm i 包名 -g

切换下载源

img

nrm工具

1
2
3
4
5
6
全局安装nrm工具
npm i nrm -g
#查看所有可用的镜像源
nrm ls
切换镜像源
nrm use taobao

开发自定义npm包

  1. 新建自定义包文件夹,作为根目录
  2. 在根目录新建如下3个文件:

package.json (包管理配置文件)

index.js (包的入口文件)

README.md (包的说明文件)

  1. 创建功能模块
  2. index.js导入功能模块,module.exports共享出去
  3. 发布包https://www.npmjs.com/
1
2
3
4
//把包发布到npm,终端切换到包根目录执行
npm publish
删除已发布的包
npm unpublish 包名 --force

三、Express

1.使用

是基于Node.js平台,构建的专门用来创建web服务器的http://www.expressjs.com.cn/

常见的两种服务器:

    • web网站服务器
    • api接口服务器

安装

项目目录运行如下命令:

1
npm i express

创建基本的web服务器

img

托管静态资源

创建一个静态资源服务器,例如:通过如下代码将public目录下的资源对外开放访问,存放静态文件的目录不会出现在url中

1
app.use(express.static('pubic))

挂载路径前缀

1
app.use('/public',express.static('pubic))

2.路由

路由就是映射关系,在express指的是客户端的请求和服务器处理函数之间的映射关系

express中路由有三部分组成,分别是请求的类型、请求的url地址、处理函数

1
app.METHOD(PATH,HANDLER)

路由匹配过程

img

模块化路由使用

img

img

为路由模块添加前缀

1
app.use('/api',userRouter)

3.中间件

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

express的中间件本质就是一个function处理函数

定义中间件函数

1
2
3
4
5
const mw = function (req,res,next) {
console.log('这是一个简单地中间件函数')

next()
}

全局中间件

1
2
3
app.use(function(req,res,next){
next()
})

局部中间件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const mw = function(req,res,next){
console.log('这是中间件函数')
next()
}

app.get('/',mw,function(req,res){
res.send('home page')
})

//mw不影响下面这个路由
app.get('/user',function(req,res){
res.send('user page')
})

//定义多个局部中间件
app.get('/',[nm1,nw2],(req,res){
res.send('')
})

app.get('/',nm1,nw2,(req,res){
res.send('')
})

多个中间件共享同一份req和res

img

中间件使用注意事项

  1. 一定要在路由之前注册中间件
  2. 客户端发送过来的请求,可以连续调用多个中间件处理
  3. 执行完中间件的业务代码后,不要忘记调用next()函数
  4. 防止代码逻辑,调用next()函数后不要再写额外的代码
  5. 连续调用多个中间件时,多个中间件之间,共享req和res对象

工具

nodemon https://www.npmjs.com/package/nodemon

它能够监听node项目文件改动,当代吗修改后自动帮我们重启项目

1
2
3
4
//安装
npm install -g nodemon
//使用
nodemon app.js

四、接口跨域问题解决方案

  • CORS(推荐)
  • JSONP

CORS

CORS由一系列http响应头组成,这些http响应头决定浏览器是否组织前端js代码跨域获取资源。

img

使用cors步骤

  1. npm install cors 安装中间件
  2. const cors = require(‘cors’) 导入中间件
  3. 在路由之前调用 app.use(cors()) 配置中间件

JSONP

浏览器端通过

作者

布谷

发布于

2022-04-22

更新于

2022-06-27

许可协议

评论