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
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容

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