• 更新node笔记1


    1. 模块化:

      • 系统模块;http,querystring,url

      • 自定义模块

      • 包管理器

    2. Crypto 加密

      Events 事件

      Net 网络操作

      OS 操作系统信息

      Path 处理文件路径

    3. 自定义模块:

      • 模块组成

      • npm

      • 发布自己的模块

    • 引入自己的模块-----------./

      • 对外输出东西-----必须加给exports

    Express

    1. 关于Express---保留了原生的功能,只不过添加了一些方法。依赖于中间件。非破坏式。

      • 非侵入式:req,res

      • express在原生的基础上还多了res.send()

      • res.send()功能跟res.write()差不多,不过是改进了,可以传输字符

    2. 3中方法:可以接收到用户请求

      • .get('/',function(req,res){});

      • .post('/',function(req,res){});

      • .use('/',function(req,res){});以上两种请求都包括

    3. Express的中间件就是类似于Jquery的插件。

    • express-static这个中间件专门帮忙处理静态文件

    • req.query---get---无需中间件

    • req.body----post---中间件(body-parser)

    1. 链式操作:

      • server.use(function(rq,res,next){});

      • server.get(function(rq,res,next){});

      • server.post(function(rq,res,next){});

      • next---下一步操作

      • next();

    2. 自己写中间件

      • server.use(function(req,res,next){

        var str='';

        req.on('data',function(data){

        str+=data;

        });

        req.on('end',function(){

        req.body=querystring.parse(str);

        next();

        })

        });

    1. cookie和session都是存数据的,但是cookie是存在浏览器中,session是存在服务端的。

      • session是基于cookie实现的。

      • cookie中会有一个session的ID,服务器利用session找到session文件,读取、写入。

      • 隐患:session_id是用户看到的,----session劫持。

      • cookie---需要引入

        读取----cookie.parser

        发送-----

        //发送cookie res.cookie('user','dys',{path:'/aaa',maxAge:30243600*1000}); res.send('ok');

        • cookie空间非常小、安全性特别差

        • (有秘钥)res.secret='字符串';

          发送cookie-----res.cookie('user','dys',{path:'/',maxAge:毫秒,signed:true});

          读取cookie-----server.use(cookieParser('秘钥'));server.use(function(){

          req.cookies 未签名版

          req.signedCookies 签名版

          })

          删除cookie----res.clearCookie('user');

      • session---需要引入

        读取------cookie-session

        显示的不是压缩也不是乱文而是签名

         

    模板引擎--后台生成页面

    1. jade--侵入式、强依赖

    2. ejs---非侵入式---渲染

      • 根据缩进,规定层级

      • 属性放在()括号里,逗号分隔

      • 写内容:a(href="") 官网----文字与标签之间用空格

      • <%=name %>可输出

      • <%= json.arr[0].name %>

      • body-parser-----解析post数据

      • multer----解析post文件

        • var obj=multer([dest:'upload/']);

        • server.use(obj.arr[]);

        • server.use(function (req,res){

          req.files[0].originalname

          req.filters[0].path

          });

        • 把扩展名加上

          var newName=file.path+pathLib.parse(file.originalname).ext

    3. consolidate---适配

      • server.set('view engine','html');

        server.set('views','模板目录');

        server.engine('html',consolidate.ejs);

       

      server.use(function(req,res){

      res.render('模板文件',数据)

      })

    4. route-----路由(把不同的目录对应不同的模块)---拆

      • 创建router

        var router=express.Router();

      • 把router添加到server

        server.use('/user',router);

      • router内部

        router.get('/1.html');

        router.post('/1.html');

      • router---子服务

  • 相关阅读:
    21.算法实战---栈
    初见Gnuplot——时间序列的描述
    MATLAB连接MySQL数据库
    用python做些有意思的事——分析QQ聊天记录——私人订制
    遇见蒙特卡洛
    层次分析模型(AHP)及其MATLAB实现
    CPP,MATLAB实现牛顿插值
    CPP&MATLAB实现拉格朗日插值法
    python3爬虫再探之豆瓣影评数据抓取
    R——启程——豆瓣影评分析
  • 原文地址:https://www.cnblogs.com/dys6/p/11336725.html
Copyright © 2020-2023  润新知