node16---cookie session
Posted 672530440
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
以上是关于node16---cookie session的主要内容,如果未能解决你的问题,请参考以下文章
如何通过express-session在node.js上设置持久性cookie?