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的更多相关文章
- cookie,session,sessionid
cookie,session,sessionid http协议是无状态的,意思是每次请求的状态不会保存.因此,产生了cookie,session之类保存会话状态的机制.1.什么是cookiecooki ...
- Servlet学习笔记(1)--第一个servlet&&三种状态对象(cookie,session,application)&&Servlet的生命周期
servlet的404错误困扰了两天,各种方法都试过了,翻书逛论坛终于把问题解决了,写此博客来纪念自己的第一个servlet经历. 下面我会将自己的编写第一个servlet的详细过程提供给初学者,大神 ...
- 在IE浏览器中iframe跨域访问cookie/session丢失的解决办法
单点登录需要在需要进入的子系统B中添加一个类,用于接收A系统传过来的参数: @Action(value = "outerLogin", results = { @Result(na ...
- 会话Cookie及session的关系(Cookie & Session)
会话Cookie及session的关系(Cookie & Session) 在通常的使用中,我们只知道session信息是存放在服务器端,而cookie是存放在客户端.但服务器如何使用sess ...
- cookie,session,token的定义及区别
参考了很多文章总结的. 1.cookie(储存在用户本地终端上的数据) 服务器生成,发送给浏览器,浏览器保存,下次请求同一网站再发送给服务器. 2.session(会话) a.代表服务器与浏览器的一次 ...
- Java web学习 Cookie&&Session
cookie&&session 会话技术 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话.会 话技术就是记录这次会话中客户端的状态与数据的. 会话技术分为Coo ...
- Cookie&Session(会话技术)
一.Cookie技术 从打开一个游览器访问某个站点,到关闭这个游览器的整个过程成为一次会话 会话技术分为Cookie和Session Cookie:数据存储在客服端本地,减少对服务端的存储的压力,安全 ...
- Cookie Session和自定义分页
cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...
- python Cookie Session 相关用法
Cookie一.前言1.http协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响 应情况直接影响,也不会直接影响后面的请 ...
- django - 总结 - cookie|session
Cookie是通过HTTP请求和响应头在客户端和服务器端传递的. 在Web开发中,使用session来完成会话跟踪,session底层依赖Cookie技术. --------------------- ...
随机推荐
- Android SQLiteDatabase分析
Android中的数据存储使用的小巧的SQLite数据库. 为了方便java层使用SQLite,android做了大量的封装.提供了一些列的类和API.本文章就揭露这些封装背后的类图关系. 老规矩,首 ...
- Linux less命令简介
less命令可以对文件或其它输出进行分页显示,与moe命令相似,但是比more命令要强大许多. 在 less 中导航命令类似于 vi,如下: 1 搜索 当使用命令 less file-name 打开一 ...
- c6----函数的声明和实现
// // main.c // 函数的声明和定义 // // Created by xiaomage on 15/6/7. // Copyright (c) 2015年 xiaomage. All r ...
- angularjs1-8,cacheFactory,sce
<!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv="C ...
- Linux下配置httpd服务
第一步拷贝 cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd 第二步,修改 vim /etc/rc.d/init.d/httpd # ...
- TCP和UDP的具体区别
TCP和UDP的最完整的区别 TCP UDP TCP与UDP基本区别: 1.基于连接与无连接 2.TCP要求系统资源较多,UDP较少: 3.UDP程序结构较简单 4.流模式(TCP)与数据报模式(UD ...
- Linux中安装redis的phpredis扩展
下载phpredis扩展 http://pecl.php.net/package/redis wget http://pecl.php.net/get/redis-4.0.2.tgz 需要环境配置文件 ...
- FluentAPI关系映射配置
都有哪几种关系? 1vs多,多vs多 1. 概念or关系映射相关方法: 1) 基本套路:this.Has***(o=>o.AAA).With***() 当前这个表和AAA属性的表关系是Has定义 ...
- SVG实现波浪效果
SVG实现波浪效果 svg path:C 贝塞尔曲线绘制波浪形状 A 绘制圆弧形 svg animate:制作波浪动画,为了波浪动画效果自然,设置values关键点 attributeName: ...
- 立即执行函数与Function
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 与new Function()区别? new Function() 还是有区别的,fn = ne ...