IT评测·应用市场-qidao123.com

标题: Node.js学习分享(下) [打印本页]

作者: 诗林    时间: 2025-3-13 19:12
标题: Node.js学习分享(下)
Express

express的根本用法

创建根本的web服务器

  1. const express = require('express') //导入express模块
  2. //创建服务器
  3. const app = express()
  4. //启动web服务器
  5. app.listen(80,()=>{
  6.     console.log('express server running at http://127.0.0.1');
  7. })
复制代码
监听GET请求


  1. app.get("请求URL",(req,res)=>{})
复制代码
监听POST请求


  1. app.post("请求URL",(req,res)=>{})
复制代码
把内容响应给客户端


  1. app.get('/user',(req,res)=>{
  2.     res.send({name:"zhengbo",age:19,hobby:"badminton"})
  3. })
复制代码
获取URL中携带的查询参数


获取URL中的动态参数


托管静态资源

express.static()


  1. app.use(express.static("文件名"))
复制代码
托管多个静态资源目录


挂载路径前缀


  1. app.use('路径前缀',express.static('文件名'))
复制代码
Express路由


  1. const express = require('express')
  2. const app = express()
  3. //挂载路由
  4. app.get('/',(req,res)=>{
  5.     res.send('Hello,World!')
  6. })
  7. app.listen(80,()=>{
  8.     console.log("server running at http://127.0.0.1");
  9. })
复制代码
路由模块化

Express中间件

Express中间件的调用流程


Express中间件的格式


next函数的作用


全局见效的中间件


  1. //全局生效的中间件
  2. app.use(middleFun)
复制代码
中间件的作用


  1. //全局生效的中间件
  2. app.use((req,res,next)=>{
  3.     const time = Date.now()
  4.     req.startTime = time
  5.     next()
  6. })
复制代码
局部见效的中间件


中间件的注意事项

中间件的分类

应用级别的中间件


错误级别的中间件


第三方中间件

自定义中间件


  1. const express = require('express')
  2. const app = express()
  3. const qs = require('querystring')
  4. //解析表单数据的中间件
  5. app.use((req,res,next)=>{
  6.     //定义一个字符串,专门存储客户端发送过来的请求体数据
  7.     let str = ''
  8.     //监听req的data事件
  9.     req.on('data',(chunk)=>{
  10.         str+=chunk
  11.     })
  12.     //监听req的end事件
  13.     req.on('end',()=>{
  14.         //将字符串解析为对象格式
  15.         const body = qs.parse(str)
  16.         req.body = body
  17.          next()
  18.     })
  19.    
  20. })
  21. //在POST请求接口中返回上面中间件挂载到req.body的数据
  22. app.post('/user',(req,res)=>{
  23.     res.send(req.body)
  24. })
  25. app.listen(80,()=>{
  26.     console.log('server running at http://127.0.0.1');
  27. })
复制代码
使用Express写接口

编写GET接口

  1. //GET接口
  2. apirouter.get('/get',(req,res)=>{
  3.     //获取客户端通过查询字符串发送到服务器的数据
  4.     const query = req.query
  5.     //向客户端响应数据
  6.     res.send({
  7.         status:0,
  8.         msg:'GET请求成功',
  9.         data:query
  10.     })
  11. })
复制代码
编写POST接口

  1. //POST接口
  2. apirouter.post('/post',(req,res)=>{
  3.     const body = req.body
  4.     res.send({
  5.         status:0,
  6.         msg:'POST请求成功',
  7.         data:body
  8.     })
  9. })
复制代码
CORS跨域资源共享

解决跨域问题的两种方案

cors中间件解决跨域问题


什么是CORS


CORS响应头部


CORS请求的分类


简单请求


预检请求


web开发模式

服务端渲染的web开发模式


优缺点:

优点:
缺点:
前后端分离的web开发模式


优缺点:

优点:
缺点:
session认证机制

http协议的无状态性


Cookie

什么是cookie


cookie的四大特性

cookie不具有安全性


session的工作原理


向session中存储数据


  1. //登录的api接口
  2. app.post('/api/login',(req,res)=>{
  3.     if(req.body.username !== 'admin' || req.body.password !== '000000'){
  4.         return res.send({status:1,msg:'登录失败'})
  5.     }
  6.    
  7.     //将登录成功后的用户信息,存储到session中
  8.     req.session.user = req.body //用户信息
  9.     req.session.islogin = true //用户的登录状态
  10.     res.send({status:0,msg:'登录成功'})
  11. })
复制代码
从session中取数据


  1. //获取用户用户名的接口
  2. app.get('/api/username',(req,res)=>{
  3.     if(!req.session.islogin){
  4.         return res.send({status:1,msg:'fail'})
  5.     }
  6.     res.send({status:0,msg:'success',username:req.session.username})
  7. })
复制代码
清空session


  1. //退出登录的接口
  2. app.post('/api/loginout',(req,res)=>{
  3.     //清空当前客户端对应的session信息
  4.     req.session.destroy()
  5.     res.send({
  6.         status:0,
  7.         msg:'退出登录成功'
  8.     })
  9. })
复制代码
JWT认证机制


什么是JWT


JWT的构成


JWT的使用方式


在Express中使用JWT

安装JWT相干的包

npm install jsonwebtoken express-jwt

将JWT字符串还原为JSON对象


   注意:只要配置好了express-jwt这个中间件,就可以把剖析出来的用户信息,挂载到req.user属性上

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4