node.js中express使用cookie-parser 和 cookie-session处理会话
cookie-parser 中间件用来解析客户端传过来的cookie,cookie-session 中间件用来建立基于cookie的会话session。
一、安装 cookie-parser 和 cookie-session
npm install cookie-parser
npm install cookie-session
二、使用 cookie-parser 解析
const express = require('express');
const cookieParser = require('cookie-parser'); let app = express();
app.listen(8888); //使用解析cookie中间件
//cookieParser()参数一,用来设置签名密钥,可以是一个数组,设置多个。
app.use(cookieParser()); app.get('/', function (req, res) {
//获取cookie信息
console.log('Cookies: ', req.cookies); //设置cookie
//参数一表示,cookie名称
//参数二表示,cookie的值
//参数三表示,cookie的配置选项
// domain 域名
// path 路径
// expires 过期时间
// maxAge 有效时间(以毫秒为单位)
// httpOnly 只能由web服务器访问
// secure 是否与https一起使用
// signed 是否签名
res.cookie('test', 'test', {path: '/', expires: new Date(Date.now() + 3600 * 1000)}); res.cookie('name', 'xiaoxu', {maxAge: 3600 * 1000}); res.end();
});
为了防止cookie信息被篡改,我们可以设置签名。
const express = require('express');
const cookieParser = require('cookie-parser'); let app = express();
app.listen(8888); //使用解析cookie中间件
//cookieParser()参数一,用来设置签名密钥,可以是一个数组,设置多个。
app.use(cookieParser('fermtp34n537m3o450')); app.get('/', function (req, res) {
//获取cookie信息
console.log('cookies: ', req.cookies); //设置使用签名
res.cookie('test', 'test', {signed: true}); //使用签名的cookie通过下面方式获取
console.log('signedCookies: ', req.signedCookies); res.end();
});
二、使用 cookie-session 处理会话
注意cookie-session中间件是基于cookie的,会把会话信息存储在cookie里。
const express = require('express');
const cookieSession = require('cookie-session'); let app = express();
app.listen(8888); app.use(cookieSession({
//会话在cookie中的名称
name: 'session',
//用于签名的密钥
keys: ['j239r5ndgffte'],
//cookie过期时间,单位毫秒
maxAge: 3600 * 1000
})); app.get('/', function (req, res) {
//获取会话数据
console.log(req.session); //设置会话数据
req.session.name = 'xiaoxu';
req.session.age = 24;
req.session.sex = '男'; res.end();
});
node.js中express使用cookie-parser 和 cookie-session处理会话的更多相关文章
- node.js中express模块创建服务器和http模块客户端发请求
首先下载express模块,命令行输入 npm install express 1.node.js中express模块创建服务端 在js代码同文件位置新建一个文件夹(www_root),里面存放网页文 ...
- node.js中express框架的基本使用
express是一个基于node.js平台的,快速,开放,极简的web开发框架. 一.安装 express npm install express --save 二.简单使用 express //引入 ...
- node.js中express的Router路由的使用
express中的Router作用就是为了方便我们更好的根据路由去分模块.避免将所有路由都写在入口文件中. 一.简单的使用Router const express = require('express ...
- node.js中 express + multer 处理文件上传
multer中间件,可以很方便的结合express处理用户表单上传的文件. 一.安装multer npm install multer 二.处理单个文件上传 const express = requi ...
- Cookie和Session在Node.JS中的实践(二)
Cookie和Session在Node.JS中的实践(二) cookie篇在作者的上一篇文章Cookie和Session在Node.JS中的实践(一)已经是写得算是比较详细了,有兴趣可以翻看,这篇是s ...
- Cookie和Session在Node.JS中的实践(三)
Cookie和Session在Node.JS中的实践(三) 前面作者写的COOKIE篇.SESSION篇,算是已经比较详细的说明了两者间的区别.机制.联系了.阅读时间可能稍长,因为作者本身作图也做了不 ...
- 在node.js中使用COOKIE
node.js中如何向客户端发送COOKIE呢?有如下两个方案: 一.使用response.writeHead,代码示例: //设置过期时间为一分钟 var today = new Date(); v ...
- 配置node.js中的express框架
玩node.js,不玩后台那就是杀鸡牛刀,今天没事整理一下以前开发node.js后台的心得 1.首先安装node.js以及cnpm,在这儿我就不说了,看我node.js中的另一篇文章node.js的安 ...
- Node.js中的Session,不要觉得简单哦。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博客地址为http://www.cnblogs.com/jasonnode/ .学习网站上有对应 ...
随机推荐
- 学习Unity -- 理解依赖注入(IOC)三种方式依赖注入
IOC:英文全称:Inversion of Control,中文名称:控制反转,它还有个名字叫依赖注入(Dependency Injection).作用:将各层的对象以松耦合的方式组织在一起,解耦,各 ...
- 如何在myeclipse中安装spket插件
在web开发中,经常会遇到自动提示,比如jquery.extjs等,在myeclipse写这些代码时需要自动提示,就需要安装spket插件,具体方法见下面 工具/原料 myeclipse spke ...
- 问题 Windows7VMware14安装虚拟机时出现 此主机不支持虚拟化实际模式。需要具备 Intel“VMX 不受限客户机”功能才能在 Intel 处理器上运行此虚拟机。 模块“CPUIDEarly”启动失败。
问题 Windows7VMware14安装虚拟机时出现 此主机不支持虚拟化实际模式.需要具备 Intel“VMX 不受限客户机”功能才能在 Intel 处理器上运行此虚拟机. 模块“CPUIDEarl ...
- 解决scipy无法正确安装到virtualenv中的问题
一 . pip的基本操作 安装包: pip/pip3 install ***pkg 卸载包: pip/pip3 uninstall ***pkg 查看已经安装的某个包的信息: pip/pip3 sho ...
- mysql 计算两点经纬度之间的距离含具体sql语句
mysql距离计算,单位m,以及排序 lon 经度 lat 纬度 一般地图上显示的坐标顺序为,纬度在前(范围-90~90),经度在后(范围-180~180) 首先新建一张表,里面包含经纬度 SET F ...
- mosquitto centos安装配置
周末弄wordpress的Mysql,一不小心把wordpress弄不好了,写了的好几遍文章也没有了,一怒之下,把整个系统重装了,安装了不带任何软件的新系统,重新搭一遍. 0.安装ftp服务器 #yu ...
- can't access lexical declaration `a' before initialization
<script type="text/javascript"> alert(a); let a=2; </script> 以上代码报错: Referen ...
- 涨姿势:深入 foreach循环
我们知道集合中的遍历都是通过迭代(iterator)完成的. 也许有人说,不一定非要使用迭代,如: List<String> list = new LinkedList<String ...
- java使用jdbc连接oracle(其他数据库类似)
最基本的Oracle数据库连接代码: 1.右键项目->构建路径->配置构建路径,选择第三项“库”,然后点击“添加外部Jar”,选择“D:\Oracle\app\oracle\product ...
- centos7 设置系统默认启动的界面
系统默认 以某种方式启动 使用systemd创建符号链接指向默认运行级别. 修改方法为:在root下 1.首先删除已经存在的符号链接rm /etc/systemd/system/default.tar ...