express

1. 初始化项目

在这里插入图片描述

2. 安装 express

在这里插入图片描述

3. 创建express 应用程序

const express = require('express');

let server = express();
server.listen(8080);

4. res.send()

server.get('/a', (req, res, next) => {
    // res.send('aaa');
    res.send({
        a: 1
    })
});

在这里插入图片描述

5. next()

server.get('/a', (req, res, next) => {
    console.log(1);

    next();
});
server.get('/a', (req, res, next) => {
    console.log(2);
})

在这里插入图片描述
传参:可以往对象身上放。

6. 中间件 express.static()

  • express 自带
  • 设置静态文件目录
server.use(express.static('./static/'));

在这里插入图片描述

7. 处理请求数据

  • GET 数据

    server.get('/a',(req,res,next)=>{
        console.log(req.query);
    
        res.send();
    })
    

    在这里插入图片描述
    在这里插入图片描述

  • POST 数据 解析 — 使用中间件

    • body-parser 处理普通数据 (不能处理文件)
    • 安装 cnpm i body-parser -D
    • server.use(body.urlencoded({
          extended: false
      }));
      
      server.post('/reg', (req, res, next) => {
          console.log(req.body);
      });
      
      在这里插入图片描述
    • multer 处理文件数据
    • 安装 cnpm i multer -D
    • // 文件上传目录 
      let obj = multer({
          dest:'./static/upload'
      });
      
      server.use(obj.any());
      
      server.post('/reg', (req, res, next) => {
          console.log(req.files);
      });
      
      在这里插入图片描述

8. cookie

  • 存储在浏览器,请求服务器的时候,会随便发给服务器
  • 服务器
  • 安装 cnpm i cookie-parser -D
  • server.use(cookieParser());
    
    server.get('/a', (req, res) => {
        // 获取 cookies
        console.log(req.cookies);
    
        // 设置cookie   有效期
        res.cookie('amount', '9999', {
            // domain:'aaa.com',
            // path:'/',
            maxAge: 14 * 86400 * 1000
        });
    
        res.send();
    });
    
    在这里插入图片描述
  • 签名后的cookie
  • // 设置签名秘钥
    server.use(cookieParser(
        'afdsafdafsasdfdfsaf'
    ));
    
    server.get('/a', (req, res) => {
        console.log('未签名', req.cookies); //未签名的
        console.log('签名后', req.signedCookies); //签名的
    
    
        res.cookie('amount', 999, {
            // httpOnly: true, // 只能服务器操作
            maxAge: 14 * 86400 * 1000,
            //secure: true, //只能 https 才能使用 cookie
            signed: true // 是不是已签名
        })
        res.send();
    });
    
    在这里插入图片描述

9. session

  • 存储在服务器,不是独立的,基于 cookie
  • 安全问题:session劫持
  • 安装 cnpm i cookie-session -D
  • server.use(cookieSession({
        name: 'session',
        // 循环秘钥
        keys: ['afdsaf', 'afdafdsaf', 'fdafdsaifasofjo'],
        maxAge: 20 * 60 * 1000 //20分钟
    }));
    
    server.get('/a', (req, res) => {
        console.log(req.session);
    
        if (!req.session.views) {
            req.session.views = 1;
        } else {
            req.session.views++;
        }
        res.send(`${req.session.views}`);
    });
    
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值