前端路线--Nodejs(day09)

01-app路由没有模块化

//设置一个路由--不使用模块化
let express = require('express');

//开启一个服务器
let app = new express();

//不使用模块化设置路由接口
app.get('/home', (req, res) => {
    res.send('home页面');
});

//定义一个userlist路由,通过get形式提交表单数据。
//访问地址:http://localhost:3000/userlist
//url地址栏的参数字符串  username=erge&age=18
//可以通过req.query来获取参数
app.get('/userlist', (req, res) => {
    //获取get方式表单提交的参数
    console.log(req.query);
    res.send(req.query.username);
});

//面试题
/* 
写一个restful格式的接口,并且获取参数
//访问地址:http://localhost:3000/product/100/200
//restful格式接口的路由
*/
app.get('/product/:pid/:cid', (req, res) => {
    //来获取restful格式的参数
    console.log(req.params);
});


//监听端口号
app.listen(3000, () => {
    console.log('3000runing');
});

02-路由模块化

router文件夹下的user_router

//引入express模块
let express = require('express');
//实例化一个router对象
let router = express.Router();

//配置路由
//访问地址: http://localhost:3000/api/home
router.get('/home', (req, res) => {
    res.send('home页面');
});

//导出模块
module.exports = router;

02-路由模块化.js

//引入express模块
let express = require('express');
//生成一个服务器对象
let app = new express();
//引入自定义路由模块
let userRouter = require('./router/user_router');

//使用自定义模块
app.use('/api', userRouter);

//监听端口号
app.listen(3000, () => {
    console.log('3000running');
});

03-创建cookie

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Documenttitle>
head>

<body>

body>
<script>
    //cookie是什么?
    /* 
    1.存储于访问者电脑中的变量。当一个用户通过浏览器通过浏览器访问服务器上班的某个页面,JavaScript会创建或读取cookie
    2.cookie是document文档对象上边的一个属性
    3.不同域名之间cookie是不共享的(不能跨域访问)
    */

    // 如何创建一条cookie
    // 语法:document.cookie="属性=值"
    document.cookie = 'username=haogu';
    document.cookie = "age=18"

    //设置cookie自动清除
    let oDate = new Date(); //获取电脑中的当前时间
    oDate.setDate(oDate.getDate() + 1); //设置1天之后清除cookie
    document.cookie = 'sex=man;expires=' + oDate; //设置一条cookie并设置有效期
    //expires单词意思有效期
    //注意:cookie一般以天为单位,cookie里存储的是字符串
script>

html>

04-获取cookie

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Documenttitle>
head>

<body>

body>
<script>
    //获取cookie(全部的)
    console.log(document.cookie);
    console.log(typeof document.cookie); //string类型

    //获取所有的cookie,得到的是一个字符串
    let str = document.cookie;
    //注意:分号后面有一个空格 ['username=haogu','age=18','sex=nan','user=二哥']
    let arr = str.split('; ');
    //遍历arr
    for (let i = 0; i < arr.length; i++) {
        let arr2 = arr[i].split('=');
        if (arr2[0] == 'username') {
            console.log(arr2[1]);
        }

    }
script>

html>

05-cookie面试题

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Documenttitle>
head>

<body>

body>
<script>
    //面试题:封装一个方法setCookies设置cookie 
    //name 名称  value值  expires 有效期(天)
    function setCookies(name, value, expires) {
        let oDate = new Date();
        oDate.setDate(oDate.getDate() + expires);
        document.cookie = name + '=' + value + ';expires=' + oDate;
    }
    setCookies('user', 'ergege', 3);

    //面试题:获取cookie方法,封装一个方法getCookies(),传入一个属性参数,可以获取对应的属性值
    function getCookies(name) {
        //获取所有的cookie,得到的是一个字符串
        let str = document.cookie;
        //注意:分号后面有一个空格 ['username=haogu','age=18','sex=nan','user=二哥']
        let arr = str.split('; ');
        //遍历arr
        for (let i = 0; i < arr.length; i++) {
            let arr2 = arr[i].split('=');
            if (arr2[0] == name) {
                return arr2[1];
            }

        }
    }
    console.log(getCookies('username'));
    console.log(getCookies('age'));

    //面试题:封装一个removeCookies,删除cookie
    //将有效期设置为昨天,cookie有效期到了之后就会消失
    function removeCookies(name) {
        setCookies(name, '这里的value可以任何', -1);
    }
    removeCookies('age');
    removeCookies('sex');
    removeCookies('user');
    removeCookies('username');

    // 总结
    // cookie是什么?
    // cookie是存储于用户计算机中的变量
    // 当一个用户通过计算机中的浏览器,访问服务器上边的某个页面,JavaScript会创建或者读取cookie
    // 不同域名之间cookie是不共享的(不能跨域访问)
    // cookie是document文档对象上边的一个属性

    // cookie的作用?
    // 1、通常用于验证用户的登录状态,当用户访问某个网站的登录页面是,可以用cookie记录登录的状态,等到下次再登录的时候就可以不用输入用户名和密码,免密登录了
    // 2、如果是商城网站,可以用cookie记录用户浏览商品的历史(临时存储浏览商品的历史)
    // 3、a页面存储cookie,在b页面读取cookie,从而达到ab页面通信
script>

html>

06-在node环境下使用cookie

//在node环境下使用cookie
//cookie必须在服务器环境下打开


//1.node中使用需要下载cookie-parser模块
//cnpm install cookie-parser --save;

//2.引入cookie-parser模块
let cookieParser = require('cookie-parser');

let express = require('express');
let app = new express;

//3.使用cookie-parser模块
app.use(cookieParser());

//4.配置路由,设置cookie
app.get('/setcookie', (req, res) => {
    //设置cookie    res.cookie(name,value,{maxAge:时间})
    res.cookie('userage', '20', {
        maxAge: 24 * 60 * 60 * 1000 //maxAge写成毫秒数
    });
    res.send('cookie设置成功');
});

//5.配置路由,获取cookie
app.get('/getcookie', (req, res) => {
    //获取cookie(获取的是对象)
    console.log(req.cookies);
    res.send('控制台获取成功');
});


app.listen(3000, () => {
    console.log('3000running');
});

07-cookie的加密(签名)

let cookieParser = require('cookie-parser');

let express = require('express');
let app = new express;


// 可以传递一个字符串参数作为密钥,用来加密cookie的
// 字符串越复杂加密越复杂
// 加密就是为了安全--在浏览器中存储的不安全所以要加密(签名)
app.use(cookieParser('dhfdhfjhfj'));


app.get('/setcookie', (req, res) => {

    res.cookie('userage', '20', {
        maxAge: 24 * 60 * 60 * 1000,
        signed: true //加密(签名)
    });
    res.send('cookie设置成功');
});


app.get('/getcookie', (req, res) => {
    //获取加密的cookie(获取的是对象)
    console.log(req.signedCookies); //读取未签名的 { username: 'erge' }
    res.send('控制台获取成功');
});


app.listen(3000, () => {
    console.log('3000running');
});

你可能感兴趣的:(前端,前端,javascript,node.js)