Nodejs

fs 模块

---- fs.readFile(‘路径’,‘格式’,callback(err,dataStr)) 读取文件
---- fs.writeFile('路径',‘要写入的数据’,‘格式(可选填),callback(err)’) 写入文件

path 模块

__dirname 被执行 js 文件的绝对路径

---- path.join(__dirname,'/a/b/c') 拼接路径
---- path.basename('路径',‘文件后缀名’) 可获取最后一段文件名+文件后缀名,如果填入‘文件后缀名’,则只返回文件名
---- path.extname(‘路径’) 获取文件后缀名

http 模块
const server = http.createServer( (req, res) => {} )  创建服务

server.listen('端口号',() => {} ) 监听访问

npm
npm i 包名称 -D ( -D 是 --save-dev 的缩写, 包只在开发环境使用)
npm i 包名称 -g ( -g 全局包 )
image.png
Express

Express 是基于 node 内置 http 模块封装的。

最常见的可以做
Web 网站服务器,专门对外提供网站资源的服务器
API 接口服务器, 专门对外提供 API 接口的服务器

使用Express , 可以更高效快速的创建 web服务器 或者 API 服务器

const express = require('express')
const app = express() // 创建服务器 app

app.use(express.static('资源路径文件夹')) // 将要向外提供的静态资源文件夹目录写入

app.listen(80)  // 监听服务器运行在80端口

app.get('请求路径',(req,res)=>{})

app.post('请求路径',(req,res)=>{})

挂载路径前缀
app.use('/public',express.static('public'))  // 之后访问资源需要添加上  /public 路径
Express 中间件

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

错误级别中间件放在所以路由之后
Express内置中间件

express.static() ---------- 无兼容限制
express.json() -------------- 4.16.0 +
express.urlencoded({ extended: false }) 解析URL-encoded 格式的请求体数据 ---------- 4.16.0 +


image.png
querystring

const qs = require( ' querystring ' )

qs.parse() 解析查询字符串为对象格式


image.png

解决跨域

cors(跨域资源共享,由一系列http响应头组成,这些HTTP响应头决定浏览器是否阻止前端JS代码跨域获取资源)

cors是 Express 的一个第三方中间件,通过安装和配置cors中间件,可以很方便的解决跨域问题。
app.use(cors())(一定要在路由配置之前配置cors!!!!!!)


image.png
image.png

image.png
JSONP

JSONP通过<scdript>标签的src属性,请求服务器上的数据,同时,服务器返回一个函数的调用,这种请求的方式叫做JSONP。

JSONP不属于真正的Ajax请求,因为它没有使用 XMLHttpRequest 这个对象
JSONP只支持get请求


image.png

image.png

数据库

数据库是用来 组织,存储和管理数据的仓库。
数据库 MySQL --- Oracle(收费) --- SQL Server(收费) --- Mongodb

web 开发模式

1.服务端渲染

优点:

1.前端耗时少,服务端负责生成html内容,浏览器只负责渲染,尤其是移动端,更省电。
2.利于seo优化,因为从服务端响应的是完整的html内容,所以利于爬虫获取信息,更利于SEO

缺点

1.占用服务端资源
2.不利于前后端分离,开发效率低

2.前后端分离

image.png

身份认证

image.png
session 认证机制
image.png

JWT认证机制 (JSON WEB TOKEN )

目前最流行的跨域认证解决方案

image.png

JWT 通常用三部分组成 Header 头部, Payload有效荷载, Signatute 签名, 三者之间用 . 分隔。

token生成 token解析

npm i jsonwebtoken express-jwt
jsonwebtoken 生成 token
express-jwt 解析 token

const secretStr = 'jwt01' // 加密串

生成token: jsonwebtoken.sign({key:value},加密串,expire是In:‘过期时间’)

解析token:app.use(expressJWT({ secret: secretStr, algorithms: ['HS256'] }).unless({ : [/^/register/] }))

bcryptjs 加密

无法逆向破解
同一明文密码多次加密,得到加密结果各不相同

bcrypt.hashSync(加密数据,随机盐的长度)

表单验证

@hapi/joi 为表单中定义每个数据项,定义验证规则
npm i @hapi/joi
@escook/express-joi ,Express 中间件,来实现自动对表单的验证功能。
npm i @escook/express-joi

导入@hapi/joi


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.什么是NodeJS,NodeJS有哪些特点 NodeJS是一个基于Chrome V8引擎的JavaScript...
    前端推土机阅读 2,645评论 0 1
  • 1 命令行窗口 1.1. 命令行窗口(小黑屏)、CMD窗口、终端、shell 开始菜单 -> 运行 -> cmd ...
    锦衣夜行001阅读 1,687评论 0 1
  • 介绍 写后台管理程序,与之类似php .net java 目标 数据服务,文件服务,web服务 优势 性能高...
    勾勾GO阅读 777评论 0 3
  • node复习笔记 第一天 前端向后台服务器发送请求的类型get: 用来获取数据post: 用来提交数据 前端发送请...
    果木山阅读 738评论 0 0
  • 今天利用node做一个文件上传功能,使用场景:这个在我们很多的应用当中都会遇到,比如我们注册用户,注册用户的时候都...
    卓儿lover阅读 2,672评论 1 3