关于session 和cookie 我搞了2-3天, 发现这个玩意也挺麻烦的. 很多教程都是把这种会话保存在nosql里面,比如mongo,或者redis等等.但是我还是想直接保存在计算机的内存中,比较符合传统的方式.网上也有很多这方面的文章,但基本上都是你抄我的,我抄你的,而且express有很多这种session/cookie的中间件,总是让人弄迷糊.很多文章都是点到为止,完全要靠自己慢慢去试,去看文档,去摸索.

我是基于connect这个中间件实现的.这个middleware 功能非常强大

有兴趣的同学可以参考: http://blog.fens.me/nodejs-connect/

安装在这里就不说了. 下面我们就来实现一下,希望对大家有用

导入模块在app.js里

 var connect = require('connect');

在路由分发语句前加入。

 app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use(cookieParser());
app.use(connect.session({ secret: 'lgphp', key: 'lgphp' ,cookie: { maxAge: 20000}})); //session 时长为20秒,这个是以毫秒为单位,这样我们就建立一个session的会话,这是一个全局的设置
routes(app);

先说session ,设置session 的KV

 req.session.sessname = 'i am a sesion';

这样我们就设置了一个名为sessname的session变量,值就是iam a sesion,这个session的会话时长是20秒。ubuntu上打字还是不太灵活

获取session

res.send('session:' + req.session.sessname)

删除session

   req.session.destroy();

判断session是否存在

if (req.session){   //判断session是否被销毁

以上session操作足够完成常用的逻辑啦

下面说cookie,我们也经常用到的。

设置cookie

   res.cookie('cookiename','i am a cookie',{ maxAge: 20000,httpOnly:true, path:'/'});//cooike 时长 30 sec

获取cookies的值

var c = req.cookies.cookiename   //这是个字典对象,你可以用括号的方式获得

删除cookie,网上很多,但是好像都没用,有的是把过期时间设置为0,我试了,cookie的值没有了,但是cookie还在,用chrome查看还有的。

   res.cookie('cookiename','null',{maxAge:0});

这样删除就没问题了。

判断cookie是否存在,比如做登录和权限验证什么的。cookie失效后,变成了undefined,所以我们这样判断

 if ('undefined' === (typeof req.cookies.cookiename)){
res.send('deleted cookie');
}

node.js web开发:EXPRESS 4.x 以上使用session和cookie 的记录的更多相关文章

  1. 《Node.js入门》CentOS 6.5下Node.js Web开发环境搭建笔记

    近期想尝试一下英特尔的基于WebRTC协同通信开发套件,所以须要在本地搭建Node.js Web的开发測试环境. 这里讲的是CentOS 下的搭建方法.使用Windows的小伙伴请參考: <No ...

  2. Windows 7下Node.js Web开发环境搭建笔记

    Node.js是什么? 我们看看百科里怎么说的?JavaScript是一种运行在浏览器的脚本,它简单,轻巧,易于编辑,这种脚本通常用于浏览器的前端编程,但是一位开发者Ryan有一天发现这种前端式的脚本 ...

  3. 利用OpenShift托管Node.js Web服务进行微信公众号开发

    最近写了一个微信的翻译机器人.用户只要关注该公众号,发送英文的消息,就能收到中文翻译的回复.有兴趣的读者可以扫描下面的二维码关注该公众号,尝试发送英文单词试试看.(有时候第一次发送单词会收到“该公众号 ...

  4. node.js Web应用框架Express.js(一)

    什么是Express.js Express 是一个简洁而灵活的 node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用,提供丰富的HTTP工具以及来自Connect框架的中间件随 ...

  5. node.js上除了Express还有哪些好用的web开发框架

    老司机都有体会, 开发本身没有多难, 最纠结其实是最初的技术和框架选型, 本没有绝对的好坏之分, 可一旦选择了不适合于自己业务场景的框架, 将来木已成舟后开发和维护成本都很高, 等发现不合适的时候更换 ...

  6. node.js Web应用框架Express入门指南

    node.js Web应用框架Express入门指南 作者: 字体:[增加 减小] 类型:转载 时间:2014-05-28 我要评论 这篇文章主要介绍了node.js Web应用框架Express入门 ...

  7. Node.js Web 开发框架大全《中间件篇》

    这篇文章与大家分享优秀的 Node.js 中间件模块.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处 ...

  8. Koa – 更加强大的下一代 Node.js Web 框架

    Koa 是 Express 的开发团队设计的下一代 Web 框架,其目的是为 Web 应用程序提供更小,更具表现力,更坚实的基础.Koa 没有核捆绑任何中间件,并提供了一​​套优雅的方法,使服务器端开 ...

  9. Ubuntu 14.04下搭建Node.js的开发环境

    最近想找一个轻量级且支持快速开发的服务开发平台,选来选去选择了Node.js,当时有几种选择: Python + Django(用过Django,虽然开发快速,但是感觉性能并不太好). Ruby + ...

随机推荐

  1. AngularJs 入门系列-1 使用 AngularJs 搭建页面基本框架

    每当看到前端程序员在脚本.样式.表单处理逻辑中苦苦挣扎的时候,我就在想,为什么不用Angular Js 呢? Angular Js 支持页面前端的 MVC 模式开发,在 Angular JS 的支持下 ...

  2. selenium和Firefox版本不兼容

    selenium8.py coding = utf-8 from selenium import webdriver driver = webdriver.Firefox() driver.get(' ...

  3. VS2013 当前不会命中断点还未为文档加载任何符号

    情况:在别人那边的项目可以调试,在我这边不行.看来是电脑环境问题了 自己试过 VS2013修复下(用了1个半小时),点评:无效 网上 五花八门的都不适合 1.设置与当前版本不一致取消打勾.    点评 ...

  4. Informatica 启动、停止工作流命令

    切换到Infa用户su - infa 停止$INFA_HOME/server/tomcat/bin/infaservice.sh shutdown 启动$INFA_HOME/server/tomcat ...

  5. Spring Boot导出jar包发布

    一:事由 现在的项目组开发项目使用的是Spring Boot的技术,开发的时候是直接通过一个入口主函数来启动项目的.如果将项目交给客户,怎样才能正确的发布运行呢?百度了一下有关的知识,大概了解到是通过 ...

  6. Centos linux php扩展安装步骤

    使用phpinfo()函数输出PHP信息,然后找到Configuration File (php.ini) apachectl 其设计意图是帮助管理员控制Apache httpd后台守护进程的功能. ...

  7. nagios架构及windows,linux客户端配置

    Linux下Nagios的安装与配置 一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等. ...

  8. C++Builder 2010 Release版本配置

    1.Project->Options->C++Compiler 右边Build Configuration 选择 Release,点击Apply选择optionset文件(第四步中保存op ...

  9. JS基础学习1——什么是基础js类和原型?

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. thinkphp验证码点击更换js实现

    <img src="__CONTROLLER__/verify" alt="" onclick=this.src="__CONTROLLER__ ...