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. Java中使用多线程、curl及代理IP模拟post提交和get訪问

    Java中使用多线程.curl及代理IP模拟post提交和get訪问 菜鸟,多线程好玩就写着玩.大神能够路过不吝赐教.小弟在这受教.谢谢! 很多其它分享请关注微信公众号:lvxing1788 ~~~~ ...

  2. Geeks - Range Minimum Query RMQ范围最小值查询

    使用线段树预处理.能够使得查询RMQ时间效率在O(lgn). 线段树是记录某范围内的最小值. 标准的线段树应用. Geeks上仅仅有两道线段树的题目了.并且没有讲到pushUp和pushDown操作. ...

  3. 《ServerLess 给前端带来了什么》笔记

    1. Serverless 是什么 Serverless “无服务器架构”,即大量依赖第三方服务(也叫做后端即服务,即“BaaS”)或暂存容器中运行的自定义代码(函数即服务,即“FaaS”)的应用程序 ...

  4. asp.net中Server.MapPath的使用

    http://www.studyofnet.com/news/184.html   本文导读:Server.MapPath()的全名是System.Web.HttpContext.Current.Se ...

  5. python爬虫:爬取读者某一期内容

    学会了怎么使用os模块 #!/usr/bin/python# -*- encoding:utf-8 -*- import requestsimport osfrom bs4 import Beauti ...

  6. Python-ORM实战

    Date: 2019-06-03 Author: Sun 什么是ORM? ​ ORM(object relational mapping), 就是对象关系映射,简单来说我们类似python这种面向对象 ...

  7. Day 02 - 01 计算机的操作系统

    操作系统 场景:有以下三个人 1.庄园主 -->相当于人类 2.管家 --> 把人类要传达的信息分配给奴隶,相当于操作系统 3.奴隶 -->为人类干活的机器 1.操作系统做了什么? ...

  8. 手写一个promise

    Promise A+ 规范:https://promisesaplus.com/ 注:以下代码没有通过 promises-aplus-tests 的全部测试,但基本功能还是全的( 测试结果: 864 ...

  9. HDU 5914 Triangle

    题目来源:2016 CCPC 长春站 题意:青蛙先生想用n个长度为1~n的木棍来组成一些三角形,但是有一个坏蛋就想破坏青蛙先生的好事,请问在这n个木棍中至少偷出来几个木棍使得青蛙先生无法再用剩下的一些 ...

  10. python的装饰器,迭代器用法

    装饰器. 装饰器实际就是一个函数 定义:在不改变内部代码和调用方式的基础上增加新的功能 了解装饰器需要了解3个内容: 1.函数即变量 2.高阶函数 1).把一个函数名当作实参传给另一个函数 2).返回 ...