node学习笔记9——cookie,session相关操作
下面讲的都是基Express及相关的包。所以在实践本篇文章之前,通过npm安装好Express, cookie-parser, cookie-session这三个安装包。
先简单说一下,如何用Express搭建一个服务器环境。如下:
const express=require("express");//引用express
var server=express();//创建服务器
server.listen(8090);//监听服务器
就是这么简单三句即可。
在说cookie, session 之前,先了解一下这2个东西的基本特性:
cookie:
1.保存在浏览器端,每次请求都会带过来;
2.不安全、大小有限(4K)。
session:
1.保存在服务器端;
2.安全、理论上是无限的;
3.基于cookie实现的。
对于这2个东西的操作,无非就是发送,读取,写入,删除这几种操作。
先讲一下cookie:
1.发送:
const express=require("express");
var server=express();
server.listen(8090);
//发送cookie
server.use('/www/test.html',function(req,res){
res.cookie('user','test',{path:'/www',maxAge:30*24*3600*1000});
res.send('ok');
})
运行这个js,可以看到浏览器里面的cookie如下图:

2.读取cookie,如果需要用到签名功能,需要引用cookie-parser模块:
const express = require("express");
const cookieParser = require("cookie-parser");
var server = express();
server.use(cookieParser("adtq563fgkj452ag"));
//先写入,再读取,secret表示cookie签名,可以防止别人篡改你的cookie
server.use('/', function (req, res) {
req.secret = 'adtq563fgkj452ag'; //如果上面在cookieParser传入了签名,这句话可以不写
res.cookie('user', 'sese', {
signed: true //表示该cookie需要签名
});
console.log('签名的cookie:', req.signedCookies); //读取签名的cookie
console.log('无签名的cookie:', req.cookies); //读取没签名的cookie
res.send('ok');
});
server.listen(8090);
执行该JS,结果如下图:

服务器端返回的结果:

3.删除cookie,语句为clearCookie():
const express = require("express");
const cookieParser = require("cookie-parser");
var server = express();
//删除cookie
server.use('/', function (req, res) {
res.clearCookie('user');
res.send('ok');
});
server.listen(8090);
-------------------------我是存在感十足的分割线-------------------------
现在讲一下sessoion。
1.写入session,需要引用cookie-session模块 :
const express = require("express");
const cookieParser = require("cookie-parser");
const cookieSession = require("cookie-session");
var server = express();
//生成session的密钥数组
var arr=[];
for(var i=0;i<10000;i++){
arr.push('sig_'+Math.random());
}
server.use(cookieParser());
server.use(cookieSession({
name:'sess',
keys:arr // 密钥
}));
server.use('/', function (req, res) {
res.send('ok');
});
server.listen(8090);
执行上面代码,显示结果如下 :

2.删除session,语句为delete req.session[name],即为:
server.use('/', function (req, res) {
delete req.session['sess'];
res.send('ok');
});
大家可以亲自测试上面的例子~
node学习笔记9——cookie,session相关操作的更多相关文章
- Python Web学习笔记之Cookie,Session,Token区别
一.Cookie,Session,Token简介 # 这三者都解决了HTTP协议无状态的问题 session ID or session token is a piece of data that i ...
- CentOS学习笔记--基本命令--目录的相关操作
Linux基本命令--目录的相关操作 常见的处理目录的命令吧: cd:变换目录 pwd:显示目前的目录 mkdir:创建一个新的目录 rmdir:删除一个空的目录 cd (变换目录) cd是Chang ...
- Javaweb学习笔记5—Cookie&Session
今天来讲javaweb的第五阶段学习. Cookie和Session同样是web开发常用到的地方. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的 ...
- ElasticSearch学习笔记-02集群相关操作_cat参数
_cat参数允许你查看集群的一些相关信息,如集群是否健康,有哪些节点,以及索引的情况等的. 检测集群是否健康 curl localhost:9200/_cat/health?v 说明: curl 是一 ...
- Django学习笔记之Django ORM相关操作
一般操作 详细请参考官方文档 必知必会13条 <> all(): 查询所有结果 <> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <> ...
- X-Cart 学习笔记(四)常见操作
目录 X-Cart 学习笔记(一)了解和安装X-Cart X-Cart 学习笔记(二)X-Cart框架1 X-Cart 学习笔记(三)X-Cart框架2 X-Cart 学习笔记(四)常见操作 五.常见 ...
- openresty 学习笔记六:使用session库
openresty 学习笔记六:使用session库 lua-resty-session 是一个面向 OpenResty 的安全和灵活的 session 库,它实现了 Secure Cookie Pr ...
- golang学习笔记16 beego orm 数据库操作
golang学习笔记16 beego orm 数据库操作 beego ORM 是一个强大的 Go 语言 ORM 框架.她的灵感主要来自 Django ORM 和 SQLAlchemy. 目前该框架仍处 ...
- amazeui学习笔记--css(布局相关1)--网格Grid
amazeui学习笔记--css(布局相关1)--网格Grid 一.总结 基本使用 1.div+class布局:amaze里面采取的就是div+class的布局方式 <div class=&q ...
随机推荐
- 【OfficeWebViewer】在线预览Word,Excel~
今天有个需求, 直接支持web端预览word,excel等文件, 查了一下很多写的比较麻烦, 这里找到一种简单的方式: http://view.officeapps.live.com/op/view. ...
- centos 7部署graphite(nginx+uwsgi)
http://www.debugrun.com/a/o5qyP9W.htmlhttp://blog.csdn.net/tsingfu1986/article/details/44239503 http ...
- HTTP报文头Accept和Content-Type总结
1.Accept属于请求头, Content-Type属于实体头. Http报头分为通用报头,请求报头,响应报头和实体报头. 请求方的http报头结构:通用报头|请求报头|实体报头 响应方的http报 ...
- vim的Tab键
vim中默认的tab键大约是6个空格(目测)的宽度.如果想修改为4个空格,用以下命令: shiftwidth=4 softtabstop-4shiftwidth的含义是:回车后需要缩进时, ...
- js非常强大的日历控件fullcalendar.js, 日期时间库: moment.js
日历控件: https://fullcalendar.io/docs/ https://fullcalendar.io/docs/event_data/events_function/ https:/ ...
- 菜鸟学JS(三)——自动隐藏的悬浮框
今天写一个小实例,用js和css写一个可以自动隐藏的悬浮框.css肯定是用来控制样式的,js用来控制器显示与隐藏的.显示与隐藏通常有两种方法实现:1,用js控制其显示属性:2,用js控制其大小. 今天 ...
- HTTP 代理服务器技术选型之旅
HTTP 代理服务器技术选型之旅 背景 长期以来,贴吧开发人员多,业务耦合大,需求变化频繁,因此容易产生 bug.而我所负责的广告相关业务,和 UI 密切相关,一旦因为某种原因(甚至是被别人改了代码) ...
- 【嵌入式】FS2410非操作系统外围资源测试
在刚接触FS2410时,其实这个测试也没有多大意义,但是对于以后来说,当一个产品做成功时,产品测试还是一个必须经过的一个阶段,所以这个流程还是有必要走一下! 在非操作系统下,主要进行RTC测试,按键测 ...
- 前端复制粘贴clipBoard.js的使用
<!DOCTYPE html> <html> <head> <title>ClipBoard.js使用:修改HTML</title> < ...
- 6款漂亮HTML CSS样式用户留言表单
如今我们的网站.页面更加需要注重细节,不论是字体的样式.还是图片的分辨率清晰度都会影响到用户的访问体验和PV,以及用户以后是否会回访我们的网站/博客.如果有时间的时候,老左也会浏览和阅读相关的前端网站 ...