express

1. 初始化项目

express

2. 安装 express

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
    })
});

express

5. next()

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

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

express
传参:可以往对象身上放。

6. 中间件 express.static()

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

express

7. 处理请求数据

  • GET 数据

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

    express
    express

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

    • body-parser 处理普通数据 (不能处理文件)
    • 安装 cnpm i body-parser -D
    • server.use(body.urlencoded({
          extended: false
      }));
      
      server.post('/reg', (req, res, next) => {
          console.log(req.body);
      });
      
      express
    • 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);
      });
      
      express

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();
    });
    
    express
  • 签名后的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();
    });
    
    express

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}次`);
    });
    
    express
上一篇:Express app.get 进行路由 Route 设置


下一篇:asp.net mvc中包含webapi时,token失效产生302的解决方案