nodejs 处理get post cookie session tooken

本文详细讲解了如何使用Express构建服务器,包括处理GET和POST请求、返回数据的不同方法(end、json、send),以及Cookie、Session和Token的使用。适合初学者理解Node.js Web开发基础。
摘要由CSDN通过智能技术生成

目录

1 搭建服务器

1 返回数据:   

2 处理get请求

3 处理post请求

 4 路由对象

2 Cookie

3 session

4 Tooken 


​​​​​​​

1 搭建服务器

1、引入express

2、创建应用程序

3、监听端口号

let express = require('express');

let app = express();

// 使用Express中唯一的一个中间件 -- static 方法实现目录的静态化
app.use('/web', express.static('/web'));

app.listen(3000, () => {
    console.log('监听在3000端口')
})

1 返回数据:   

通过end方法数据

res.end('success');    不支持对象 只能接收string || buffer

res.end(JSON.stringify({ errno: 0, msg: '返回数据成功' }));    

通过json方法数据

res.json({ errno: 0  });    可以接收对象

res.json('success'); 还可以接收字符串

    通过send方法返回数据

    res.send('success');

    res.send({ errno: 1 });

app.get('/test', (req, res, next) => {
    console.log(req.query);
    // res.end('scuuess');
    // res.end(JSON.stringify({errno: 0, msg: 'success' }));

    // res.json('success');
    // res.json({ errno: 0, msg: 'hello' });

    // res.send('success');
    // res.send({ errno: 0, msg: 'hello' });
})

2 处理get请求

next() 放行函数  一旦执行该函数 即可在下面继续处理该接口

app.get('/test', (req, res, next) => {
    console.log(111, req.query);
    next();
})

app.get('/test', (req, res, next) => {
    console.log(222, req.query);
    res.end('success')
})

3 处理post请求

如果想要获取post请求传递的数据,则需要借助中间件body-parse之后还要进行配置

// 引入body-parser
let bodyParser = require('body-parser');
// 配置
app.use(bodyParser.urlencoded({ extended: false }));
app.post('/demo', (req, res) => {
    console.log(req.query);
    console.log(req.body);
    res.end('success');
})

 4 路由对象

使用方式:

1通过Express获取路由模块,

2 创建路由实例化对象,并配置路由

3 安装路由对象

// 1 引入express
let express = require('express');

// 引入body-parser
let bodyParser = require('body-parser');

// 2 创建应用程序
let app = express(); 

// 实现访问即可打开首页a
app.use(express.static('./web'));

// 配置bodyParser
app.use(bodyParser.urlencoded({ extended: false }));


// 引入router
let { Router } = require('express');

// 等价于:
// let express = require('express');
// let Router = express.Router();

let router = new Router();

router.get('/test', (req, res) => {
    console.log(req.query);
    res.json({ errno: 0, msg: 'success'   });

router.post('/demo', (req, res) => {
    console.log(req.body);
    res.json({ errno: 0, msg: 'demo返回'  });



// 3 监听端口号
app.listen(3000, () => console.log('监听在3000端口号'));

 上面这种写法没有简洁 所以应该分开不同的js,引入

// 1 引入express
let express = require('express');

// 引入body-parser
let bodyParser = require('body-parser');

// 2 创建应用程序
let app = express(); 

// 实现访问即可打开首页a
app.use(express.static('./web'));

// 配置
app.use(bodyParser.urlencoded({ extended: false }));

// ---------------------------
// 引入router  默认就引入index.js
let router = require('./router'); 
// ---------------------------

// 挂载router
app.use(router);

 
// 3 监听端口号
app.listen(3000, () => console.log('监听在3000端口号'));

 上面页面引入的index.js: 

//  index.js 中 记得暴露router
let { Router } = require('express');

let router = new Router();

//  处理get请求 又引入了test.js
router.get('/test', require('./test'));

//  处理post请求 又引入了demo.js
router.post('/demo', require('./demo'));

module.exports = router;

 上面简写

module.exports = new Router()
    .get('/test', require('./test'))
    .post('/demo', require('./demo'))

  test.js

module.exports = (req, res) => {
    console.log(req.query);
    res.json({ errno: 0, msg: 'test返回' });
}

demo.js

module.exports = (req, res) => {
    console.log(req.body);
    res.json({ errno: 0, msg: 'demo返回'  });
}

2 Cookie

//  引入
let cookieParser = require('cookie-parser');

//  配置
app.use(cookieParser());

res.cookie()  设置cookie

req.cookies   访问cookie

app.post('/login', (req, res) => {
    let { username, password } = req.body;
    // 设置cookie
    res.cookie('name', username, {maxAge: 60000});
    res.cookie('pws', password, {maxAge: 60000});
    res.end('successlogin');
})

app.get('/check', (req, res) => {
    // 访问cookie
    console.log('打印cookie值', req.cookies);
    res.end('success');
})

3 session

req.session.name = 设置session

req.session 访问session

// 引入session
let expressSession = require('express-session');
// 配置session
app.use(expressSession({
    // 配置密钥
    secret: 'askdjlasjd',
    // 每一次访问session的时候,是否重置 
    resave: false,
    // 在初始化的时候是否设置session
    saveUninitialized: true
}))

app.post('/login', (req, res) => {
    let { username, password } = req.body;
    // 设置session
    req.session.username = username;
    req.session.password = password;
    res.end('success, set session');
})

app.get('/check', (req, res) => {
    console.log('查看session', req.session);
    res.end('success, get session');
})


//查看session Session {
//  cookie: { path: '/', _expires: null, originalMaxAge: null, httpOnly: true },
//  username: 'koma',
//  password: 'wsq123'
//}
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

4 Tooken 

jwt.sign   加密token

jwt.verify   解析token

// 引入jwt
let jwt = require('jsonwebtoken');


// 定义指定的加密字符串
let secret = 'kljajsdlkjasd';

// 处理post请求
app.post('/login', (req, res) => {
    // 加密token串
    jwt.sign(req.body, secret, (err, result) => {
        // 捕获异常
        if (err) {
            res.send({ errno: 1, msg: '加密token串失败了' })
            return;
        } 
        // 返回成功的消息
        res.send({ errno: 0, token: result })
    })

})

// 处理sendToken接口
app.post('/sendToken', (req, res) => {
    // 获取token
    var token = req.body.token;

    // 解析token
    jwt.verify(token, secret, (err, result) => {
        // console.log(err, 111, result);
        // 捕获异常
        if (err) {
            res.send({ errno: 1, msg: '解析token串失败了' });
            return;
        }

        // 返回成功消息
        res.send({ errno: 0, data: result  })

    })

})
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值