node16---cookie session

03.js

var express = require("express");
var app = express();
var db = require("./model/db.js");
var formidable = require(‘formidable‘);
var ObjectId = require(‘mongodb‘).ObjectID;

//设置模板引擎
app.set("view engine", "ejs");

//静态
app.use(express.static("./public"));
//显示留言列表
app.get("/", function (req, res, next) {
    db.getAllCount("liuyanben",function(count){
        res.render("index",{
            "pageamount" : Math.ceil(count / 20)
        });
    });
});

//读取所有留言,这个页面是供Ajax使用的
app.get("/du", function (req, res, next) {
    //可以接受一个参数
    var page = parseInt(req.query.page);

    db.find("liuyanben",{},{"sort":{"shijian":-1},"pageamount":20,"page":page},function(err,result){
        res.json({"result":result});
    });
});

//处理留言
app.post("/tijiao", function (req, res, next) {
    var form = new formidable.IncomingForm();

    form.parse(req, function (err, fields) {
        //写入数据库
        db.insertOne("liuyanben", {
            "xingming" : fields.xingming,
            "liuyan" : fields.liuyan,
            "shijian" : new Date()
        }, function (err, result) {
            if(err){
                res.send({"result":-1}); //-1是给Ajax看的
                return;
            }
            res.json({"result":1});
        });
    });
});

//删除
app.get("/shanchu",function(req,res,next){
    //得到参数
    var id = req.query.id;
    db.deleteMany("liuyanben",{"_id":ObjectId(id)},function(err,result){

        res.redirect("/");
    });
})

app.listen(3000);

04.js

var express  = require(‘express‘);
var cookieParser = require(‘cookie-parser‘);

var app = express();
//使用cookie必须要使用cookie-parser中间件
app.use(cookieParser());

app.get("/",function(req,res){
    res.send("猜你喜欢" + req.cookies.mudidi);
});

//查询一个地方的攻略,URL语法: http://127.0.0.1/gonglue?mididi=北京
//此时北京就能记录在cookie中
app.get("/gonglue",function(req,res){
    //得到get请求,用户查询的目的地
    var mudidi = req.query.mudidi;
    //记录用户喜好
    //先读取用户的喜好,然后把新的数据push进入数组,然后设置新的cookie
    var mudidiarry = req.cookies.mudidi || [];
    mudidiarry.push(mudidi);
    //maxAge在Express中以毫秒为单位,"mudidi",mudidiarry是内容,后面是cookie的属性。
    res.cookie("mudidi",mudidiarry,{maxAge: 900000, httpOnly: true});
    res.send(mudidi + "旅游攻略");
});

app.listen(3000);

05.js

var express = require("express");
var app = express();
var session = require("express-session");

app.use(session({
    secret: ‘keyboard cat‘,
    resave: false,
    saveUninitialized: true
}));

app.get("/",function(req,res){
    if(req.session.login == "1"){
        res.send("欢迎" + req.session.username);
    }else{
        res.send("没有成功登陆");
    }
});

app.get("/login",function(req,res){
    req.session.login = "1";    //设置这个session
    req.session.username = "考拉";
    res.send("你已经成功登陆");
});

app.listen(3000);

06.js

var express = require("express");
var app = express();
var db = require("./model/db.js");
var session = require("express-session");

app.use(session({
    secret: ‘keyboard cat‘,
    resave: false,
    saveUninitialized: true
}));

app.set("view engine","ejs");

app.get("/",function(req,res){
    if(req.session.login == "1"){
        res.send("欢迎" + req.session.username);
    }else{
        res.send("没有成功登陆");
    }
});

app.get("/login",function(req,res){
    res.render("denglu");
});

app.get("/checklogin",function(req,res){
    var tianxiedeusername = req.query.username;
    var tianxiedepassword = req.query.password;
    //根据用户填写的姓名,去数据库里面找这个文档,读取密码。
    //如果读取的密码,和填写的密码一样,登陆成功了;
    //如果读取的密码,和填写的密码不一样,登陆失败
    //如果根本没有找到这个记录,那么就说明用户名填写错了
    db.find("users",{"username":tianxiedeusername},function(err,result){
        if(result.length == 0){
            res.send("你的登录名写错了,没有这个注册用户");
            return;
        }
        var shujukuzhongdepassword = result[0].password;
        if(shujukuzhongdepassword == tianxiedepassword){
            req.session.login = "1";
            req.session.username = result[0].username;
            res.send("成功登陆!你是" + result[0].username);
        }else{
            res.send("密码错误!");
        }
    })
});

app.listen(3000);
时间: 2024-10-04 13:30:32

node16---cookie session的相关文章

【转】学习总结--Cookie & Session总结

转载地址:http://www.phperzone.cn/portal.php?aid=718&mod=view 一.状态管理1)什么是状态管理?   将浏览器与web服务器之间多次交互过程当做一个整体来处理,并且将多次交互所涉及的数据进行管理.2)状态管理技术cookie:    a,什么是cookie?   是一种客户端(浏览器)的状态管理技术.   浏览器在访问web服务器的时候,服务器会将少量的数据以set-cookie消息头的方式发送给浏览器,浏览器会将这结数据保存下来:当浏览器再次访

Cookie&&Session会话技术之再体验

1.转发与重定向[****]    * 重定向:重新确定请求方向        * 发送者:服务器 --> 响应(response)浏览器        * 执行者:浏览器 --> 重新请求        * 跳转        * response.sendRedirect("/day04/1.html");        * //完全等价,隐藏了HTTP协议的具体要求        * response.setStatus(302);        * response

cookie,session,sessionid

http协议是无状态的,意思是每次请求的状态不会保存.因此,产生了cookie,session之类保存会话状态的机制.1.什么是cookiecookie将信息存储在客户端浏览器中.cookie的内容主要包括:key,value,expire_time,path(路径),domain(域)浏览器发送请求是会查找对应的path,domain,把符合的cookie自动发送给服务器. 2.什么是sessionsession在服务器端生成,然后会将对应的sessionid在浏览器端使用cookie保存起来

Cookie & Session & CSRF

新blog地址:http://hengyunabc.github.io/cookie-and-session-and-csrf/ 在线幻灯片地址:Cookie & Session & CSRF

cookie,session,token的定义及区别

参考了很多文章总结的. 1.cookie(储存在用户本地终端上的数据) 服务器生成,发送给浏览器,浏览器保存,下次请求同一网站再发送给服务器. 2.session(会话) a.代表服务器与浏览器的一次会话过程,这个过程是连续的,也可以时断时续的. b.cookie中存放着一个sessionID.请求时会发送这个ID. c.session因为请求(request对象)而产生. d.session是一个容器,可以存放会话过程中的任何对象. e.session的创建和使用总在服务端,而浏览器从来都没得

Django9 Cookie&Session

Cookie 获取Cookie request.COOKIES["key"] request.get_signed_cookie(key, default=RAISE_ERROR, salt="", max_age=None) # 参数 # default:默认值 # salt:加密盐 # max_age:后台控制过期时间 设置Cookie rep = HttpResponse(...) 或 rep = render(request, ...) rep.set_co

cookie session token 之间的区别

cookie 和session的区别 1.cookie数据存放在客户的浏览器上,session数据放在服务器上. 2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 考虑到安全应当使用session. 3.session会在一定时间内保存在服务器上.当访问增多,会比较占用你服务器的性能 考虑到减轻服务器性能方面,应当使用COOKIE. 4.单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie. token 和session

cookie&session的比较

* ---------------------cookie&session的比较(1)--------------------------- * 1.存储地点: * cookie存储于客户端 * session存储于服务器端 * 2.安全性 * cookie安全性低,易伪造篡改(因存储于客户端) * session安全性较高(存储于服务器端) * 3.可存储类型 * cookie只能存储字符串/数字等标量类型,不能存数组对象等 * session可以存储数组/对象(资源除外) * -------

express使用cookie,session

cookie 存在浏览器,4k,不安全 签名,加密,(提高一点点安全性) session 存在服务器,安全, 不能独立存在,基于cookie, cookie 使用 var cookieParser = require('cookie-parser'); server.use(cookieParser('签名字符串')) server.use(function(req,res){ res.cookie(名字,值,{signed:true})//设置cookie res.clearCookie('名

会话Cookie及session的关系(Cookie & Session)

会话Cookie及session的关系(Cookie & Session) 在通常的使用中,我们只知道session信息是存放在服务器端,而cookie是存放在客户端.但服务器如何使用session和客户端之间进行通信,以及jsessionId是怎么回事,这并没有一个完整和正确的认识,因此这里将这类信息汇总. session中的jsessionId是在session创建好之后,发送给客户端.然后在每一次请求中,客户端即会将这个信息传递给服务器端,服务器端使用这个信息来维护和客户端之间的会话通信,