Node笔记
一、Node
1.1简介
Node.js 是 JavaScript 的后端运行环境
Node.js官网 https://nodejs.org
查看node.js版本号中断指令
node –v
内置API
fs 模块是 Node.js 官方提供的、用来操作文件的模块。
path 模块是 Node.js 官方提供的、用来处理路径的模块。
http 模块是 Node.js 官方提供的、用来创建 web 服务器的模块。
1.2 http创建最基本的web服务器
- 获取请求url
- 设置未处理的响应内容为404页面
- 判断用户请求的是否为/或/index.html首页
- 根据不同url响应不同的html内容
- 设置Content-Type响应头,防止中文乱码
- 使用res.end()把内容响应给客户端
二、模块化
包管理指令
1.快速创建 package.json
1 | npm init -y |
2.安装依赖包
1 | npm install //npm i 一次性安装项目依赖的所有包 |
3.卸载制定的包
1 | npm uninstall 包名 |
4.安装只在项目开发阶段使用的包
1 | npm i 包名 -D |
5.安装全局包
1 | npm i 包名 -g |
切换下载源
nrm工具
1 | 全局安装nrm工具 |
开发自定义npm包
- 新建自定义包文件夹,作为根目录
- 在根目录新建如下3个文件:
package.json (包管理配置文件)
index.js (包的入口文件)
README.md (包的说明文件)
- 创建功能模块
- index.js导入功能模块,module.exports共享出去
- 发布包https://www.npmjs.com/
1 | //把包发布到npm,终端切换到包根目录执行 |
三、Express
1.使用
是基于Node.js平台,构建的专门用来创建web服务器的http://www.expressjs.com.cn/
常见的两种服务器:
- web网站服务器
- api接口服务器
安装
项目目录运行如下命令:
1 | npm i express |
创建基本的web服务器
托管静态资源
创建一个静态资源服务器,例如:通过如下代码将public目录下的资源对外开放访问,存放静态文件的目录不会出现在url中
1 | app.use(express.static('pubic)) |
挂载路径前缀
1 | app.use('/public',express.static('pubic)) |
2.路由
路由就是映射关系,在express指的是客户端的请求和服务器处理函数之间的映射关系
express中路由有三部分组成,分别是请求的类型、请求的url地址、处理函数
1 | app.METHOD(PATH,HANDLER) |
路由匹配过程
模块化路由使用
为路由模块添加前缀
1 | app.use('/api',userRouter) |
3.中间件
特指业务流程的中间处理环节。
express的中间件本质就是一个function处理函数
定义中间件函数
1 | const mw = function (req,res,next) { |
全局中间件
1 | app.use(function(req,res,next){ |
局部中间件
1 | const mw = function(req,res,next){ |
多个中间件共享同一份req和res
中间件使用注意事项
- 一定要在路由之前注册中间件
- 客户端发送过来的请求,可以连续调用多个中间件处理
- 执行完中间件的业务代码后,不要忘记调用next()函数
- 防止代码逻辑,调用next()函数后不要再写额外的代码
- 连续调用多个中间件时,多个中间件之间,共享req和res对象
工具
nodemon https://www.npmjs.com/package/nodemon
它能够监听node项目文件改动,当代吗修改后自动帮我们重启项目
1 | //安装 |
四、接口跨域问题解决方案
- CORS(推荐)
- JSONP
CORS
CORS由一系列http响应头组成,这些http响应头决定浏览器是否组织前端js代码跨域获取资源。
使用cors步骤
- npm install cors 安装中间件
- const cors = require(‘cors’) 导入中间件
- 在路由之前调用 app.use(cors()) 配置中间件
JSONP
浏览器端通过