Node js 入门(三)

Node 中 公开资源

  1. express.use(‘/路径/’,express.static(‘./路径/’)) express.use(express.static(‘./路径/’))
  2. 如果有第一个参数就 必须带上他才能访问
  3. 如果没有可以直接省略这个路径 直接访问里面的文件
  4. 会默认访问文件里面的 index.html

Express 处理接口请求

  1. req.method 可以拿到请求方式
  2. app.get(路径,(req,res) => {}) 只能接收get请求 req.query 可以拿到请求携带的参数
  3. app.post(路径,(req,res) => {}) 只能接收post 请求 想要拿到请求携带的参数就需要配置中间件 body-parser
// 引入 express 内部自带 body-parser
let bodyParser = require('body-parser')
// 配置
app.use(bodyParser());

		配置过后就可以通过 req.body 拿到post 请求携带的参数
  1. app.use(路径,(req,res) => {}) get 和post 请求都可以接收到

res 响应体

  1. res.end() 可以返回响应
  2. res.send() 可以返回响应
  3. res.json() 可以返回一个json格式的响应
  4. res.jsonp() 可以返回一个jsonp响应
  5. res.status(状态码).send()
    给前端返回一个状态码在返回响应可以链式编程
  6. res.sendFile(path.resole(要渲染的文件路径))
    渲染一个html 页面 但是无法渲染静态资源

中间件

中间件的本质就是一个请求处理方法 把用户从请求到响应的整个过程分布到多个中间件中去处理 这样做的目的 是提高代码的灵活性 多态可扩展的

next 管道函数

app.get('/api/*',(req,res,next) => {
    console.log(req.query);
    console.log(`处理api 下面的所有公共逻辑`);
next()
})

如果第三个参数 有 next 并且执行了就还会往下执行
如果没有第三个参数 下面的 /api/ 的 逻辑就不会执行
有没有 next() 就会决定 放不放行

app.use(地址(选填) , 回调函数 ,next)

如果第一个参数不填 就会默认获取所有请求 如果不next()
就无法执行其他请求方法
可以在请求体 上面 绑定一个属性 会一直向下传递

后端跳转

res.redirect(路径)

抛出错误并结束程序运行

throw new Error(报错信息)

Session 身份验证

HTTP是一种没有状态的协议,也就是它并不知道是谁访问。客户端用户名密码通过了身份验证,不过下回这个客户端再发送请求时候,还得再验证

Session 思想

1、客户端用户名跟密码请求登录
2、服务端收到请求,去库验证用户名与密码
3、验证成功后,服务端种一个cookie或发一个字符到客户端, 同时服务器保留一份session
4、客户端收到响应以后可以把收到的字符存到cookie
5、客户端每次向服务端请求资源的cookie会自动携带
6、服务端收到请求,然后去验证cookie和session, 如果验证成功,就向客户端返回请求的库数据

Session存储位置:服务器内存,磁盘,或者数据库里、
Session存储内容: id,存储时间,用户名等说明一下登录的用户是谁
客户端携带 cookie自动带,localStorage手动带

cookie中间件

安装

npm install cookie-session

配置中间件

app.use(cookiesession({
    keys: ["aa","bb","cc"],  //代表加密层级 必填
    name: 'cookie',     //后端给前端种cookie的 名字
    maxAge: 10000    ,     //代表过期时间  毫秒单位
}))
发布了17 篇原创文章 · 获赞 4 · 访问量 257

猜你喜欢

转载自blog.csdn.net/sd2401345934/article/details/104820308