zoukankan      html  css  js  c++  java
  • Node_进阶_6

    Node进阶第六天

    一、复习

    cookie是在res中设置,req中读取的。第一次的访问没有cookie。

    cookie的存储大小有限,kv对儿。对用户可见,用户可以禁用、清除cookie、可以被篡改。

    cookie用来制作记录用户的一些信息,必须购买历史、猜你喜欢。

    HTTP是无状态的协议,所以两次的访问,服务器不能认识到是同一个客户端的cookie,就要用cookie来巧妙地解决这个问题。

    Session就是利用cookie,实现的”会话”。就是第一次访问的时候,可以在服务器上为这个用户缓存一些信息,别的用户是不能看见这个用户的信息的。服务器会下发一个密钥(cookie),客户端每次访问都携带这个密钥,那么,服务器如果发现这个密钥吻合,就能够显示这个用户曾经保存的信息。

      登录就是用Session来制作的。任何语言的session都是透明的。不会体现cookie机理。

    express-session中对session的处理都是使用的req,而不是res:

    var session = require('express-session');

     

    app.use(session({

     

        //一些配置

        //一些配置

        //一些配置

     

    }));

     

    app.get("/", function (req, res) {

        console.log(req.session.login);

    });

     

    app.get("/login", function (req, res) {

        req.session.login = "1";

    });

     

    二、加密

    永远不要用明码写密码。 CSDN今年泄露用户密码了,并且泄露的明码。

    黑客拿到的用户的密码的加密信息,所以也没用。因为他无法翻译成为明码。

    MD5加密是函数型加密,就是每次加密的结果一定相同,没有随机位。

    特点:

    ·不管加密的文字,多长多短,永远都是32位英语字母、数字混合。

    ·哪怕只改一个字,密文都会大变。

    ·MD5没有反函数破解的可能,网上的破解工具,都是通过字典的模式,同故宫大量列出明-密对应的字典找到明码的。

    MD5常用于作为版本校验。可以比对两个软件、文件是否完全。

    node中自带了一个模块,叫做crypto模块,负责加密。

    首先创建hash:

    var md5 = crypto.createHash(‘md5’);

    var password = md5.update(fields.password).digest(‘base64’);

        创造了一个哈希对应,给他一个明码,就能对应,

        然后update和digest:

    var crypto = require('crypto');

    const fs = require('fs');

     

    console.log(md5('123456'))

     

    function md5(mingma){

        var md5 = crypto.createHash('md5');

        var password = md5.update(mingma).digest('base64');

        return password;

    }

     

    二、图片处理

    Graphicsmagick

    http://www.graphicsmagick.org/

    GraphicsMagick is the swiss army knife of image processing. 

    装完之后,可视化工具一点用都没有,从桌面上删除。我们要把安装目录设置为环境变量。

    在终端中使用:

    //格式转换

    gm convert a.bmp a.jpg

    //更改当前目录下*.jpg的尺寸大小,并保存于目录.thumb里面

    gm mogrify –output-directory .thumbs –resize 320x200 *.jpg

    nodejs 要使用graphicsmagick,需要npm装一个gm的包。

    node.js缩略图的制作:

      var fs = require(‘fs’);

      var gm = require(‘gm’);

      gm(‘./danny.jpg’)

            .resize(50,50)

            .write(‘./danny2.jpg’,function(err){

                  if(err){

                      console.log(err);

    }

    })

    node.js头像裁切:

      gm(‘./danny.jpg’).crop(141,96,152,181).write(‘./2.jpg’,function(err){

             //141 96是宽高,152 181是坐标

    })

    crop图像剪裁

     

    班级说说

      不能转发的微博系统。

      注册、登录,可以发微博。

      没有”关注”、”收听”机制,所有人的微博,都能被你看见(像论坛)。

      按时间排序。

      可以对一个微博进行”赞”、”评论”。

      班级说说。

    ==================================

    数据库中的collection

    user这个集合,存储用户的信息,里面的document举例

    username不能重复,

    {_oid:’fasdasd’,”username”:”小明”,”password”:”md5加密”,”avatar”:”20150925.jpg”,’sign’:”一句话签名”};

    {_oid:’fasdasd’,”username”:”小红”,”password”:”md5加密”,”avatar”:”20150925.jpg”,’sign’:”一句话签名”};

    {_oid:’fasdasd’,”username”:”小绿”,”password”:”md5加密”,”avatar”:”20150925.jpg”,’sign’:”一句话签名”};

    post集合,存储用户发表的文章

    {“title”:”标题”,”content”:”内容”,”author”:”小明”,”date”:”日期”,”comment”:[

    {

      “content”:”真好”,

      “author”:”小红”,

      “date”:”2015年9月26日15:31:24”

    },{

       “content”:”真好”,

       “author”:”小红”,

       “date”:”2015年9月26日15:31:24”

    },{},{}],”zan”:[“小明”,”小强”]}

  • 相关阅读:
    谷歌翻译插件
    WordPress资料收集,以后整理
    WordPress不同分类使用不同的文章模板
    禁用/移除WordPress页面的评论功能
    wordpress设置一个特定的页面作为首页
    wordpress主题之后台菜单编辑,小工具
    tinkcmf视频上传大小限制
    转:解决Onethink上传视频的问题 超棒的解决方案
    linux(centos) 下安装phpstudy 如何命令行进入mysql
    在 Mac OS X 10.9 搭建 Python3 科学计算环境
  • 原文地址:https://www.cnblogs.com/eret9616/p/9111453.html
Copyright © 2011-2022 走看看