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的更多相关文章

  1. cookie,session,sessionid

    cookie,session,sessionid http协议是无状态的,意思是每次请求的状态不会保存.因此,产生了cookie,session之类保存会话状态的机制.1.什么是cookiecooki ...

  2. Servlet学习笔记(1)--第一个servlet&&三种状态对象(cookie,session,application)&&Servlet的生命周期

    servlet的404错误困扰了两天,各种方法都试过了,翻书逛论坛终于把问题解决了,写此博客来纪念自己的第一个servlet经历. 下面我会将自己的编写第一个servlet的详细过程提供给初学者,大神 ...

  3. 在IE浏览器中iframe跨域访问cookie/session丢失的解决办法

    单点登录需要在需要进入的子系统B中添加一个类,用于接收A系统传过来的参数: @Action(value = "outerLogin", results = { @Result(na ...

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

    会话Cookie及session的关系(Cookie & Session) 在通常的使用中,我们只知道session信息是存放在服务器端,而cookie是存放在客户端.但服务器如何使用sess ...

  5. cookie,session,token的定义及区别

    参考了很多文章总结的. 1.cookie(储存在用户本地终端上的数据) 服务器生成,发送给浏览器,浏览器保存,下次请求同一网站再发送给服务器. 2.session(会话) a.代表服务器与浏览器的一次 ...

  6. Java web学习 Cookie&&Session

    cookie&&session 会话技术 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话.会 话技术就是记录这次会话中客户端的状态与数据的. 会话技术分为Coo ...

  7. Cookie&Session(会话技术)

    一.Cookie技术 从打开一个游览器访问某个站点,到关闭这个游览器的整个过程成为一次会话 会话技术分为Cookie和Session Cookie:数据存储在客服端本地,减少对服务端的存储的压力,安全 ...

  8. Cookie Session和自定义分页

    cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...

  9. python Cookie Session 相关用法

    Cookie一.前言1.http协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响 应情况直接影响,也不会直接影响后面的请 ...

  10. django - 总结 - cookie|session

    Cookie是通过HTTP请求和响应头在客户端和服务器端传递的. 在Web开发中,使用session来完成会话跟踪,session底层依赖Cookie技术. --------------------- ...

随机推荐

  1. SpringMVC-Interceptor拦截Session登录

    背景: 开发的项目都须要账号password登录才干够查看站点的内容,所以我们设计时须要考虑,用户进入站点仅仅能从一个我们设计的规范通道进入即通过注冊的账号password登录,其它方法都是非法的和不 ...

  2. caffe:使用C++来提取任意一张图片的特征

    0x00 关于使用C++接口来提取特征,caffe官方提供了一个extract_features.cpp的例程,但是这个文件的输入是blob数据,即使输入层使用的是ImageData,也需要在depl ...

  3. tomcat开启https服务

    一.创建证书 证书是单点登录认证系统中很重要的一把钥匙,客户端于服务器的交互安全靠的就是证书:本教程由于是演示所以就自己用JDK自带的keytool工具生成证书:如果以后真正在产品环境中使用肯定要去证 ...

  4. bootstrap-导航条

    默认样式的导航条 导航条是在您的应用或网站中作为导航页头的响应式基础组件.它们在移动设备上可以折叠(并且可开可关),且在视口(viewport)宽度增加时逐渐变为水平展开模式. 两端对齐的导航条导航链 ...

  5. AVL树,红黑树,B树,B+树,Trie树都分别应用在哪些现实场景中?

    AVL树: 最早的平衡二叉树之一.应用相对其他数据结构比较少.windows对进程地址空间的管理用到了AVL树. 红黑树: 平衡二叉树,广泛用在C++的STL中.如map和set都是用红黑树实现的. ...

  6. BZOJ 2820: YY的GCD 莫比乌斯反演_数学推导_线性筛

    Code: #include <cstdio> #include <algorithm> #include <cstring> #include <vecto ...

  7. post数据html数据获取危险处理办法

      基础小知识 ValidateRequest属性是Page类中比较常用的属性,用来指示是否对输入数据进行潜在危险性检查.在默认情况下为True,就是表示 “是对输入的数据进行潜在危险性检查”,这个属 ...

  8. 清空chrome浏览器缓存

    缓存是一个很深奥的东西,虽然查了半天,还是没有搞清楚,希望以后可以遇到前端大神,可以给一个傻瓜化的通俗易懂的解释 已经上线的,后续有迭代的软件,迭代的版本不应该手动清除缓存了,因为太麻烦,对客户来说不 ...

  9. KVM虚拟机相关步骤

    KVM是Kernel-based Virtual Machine的简称,是一个开源的虚拟化模块,该文档是基于CentOS 7.4环境操作的 一.操作系统安装 本文采用的是CentOS 7.4 1.查看 ...

  10. 新手须知 QT类大全

    QT类大全,在行内容中罗列出来了,希望大家多看看,如果是API就更好了,但可惜不是.这些是一些大类,请多做参考. QApplication 应用程序类 QLabel 标签类 QPushButton 按 ...