node.js - 如何在express.js中启用 session

标签 node.js session express

我有node.js 5.1.1和express.js 4.13.3。

我读过一本书,说为了在express中启用 session ,您必须在启动新项目时执行express -e -s nameOfYourProject。但这本书有点旧,我收到错误:inknow option '-s'

本书的示例使用 session ,如下所示,var sess = this.req.session; 。整章都是关于注册和登录的。

那么,如何启用 session ?我必须安装模块还是默认启用它们?

最佳答案

默认情况下它们并未启用,但 Express 核心团队可以通过 npm 提供一个模块。我相信它曾经与express捆绑在一起,但他们在express v4中将许多功能分解为单独的模块。它使用起来非常简单,我建议使用 Redis 或其他持久数据存储作为 session 存储。

模块:express-session

基本用法:

const express = require('express')
const parseurl = require('parseurl')
const session = require('express-session')

let app = express()

app.use(session({
  secret: 'keyboard cat',
  resave: false,
  saveUninitialized: true
}))

app.use(function (req, res, next) {
  var views = req.session.views

  if (!views) {
    views = req.session.views = {}
  }

  // get the url pathname 
  var pathname = parseurl(req).pathname

  // count the views 
  views[pathname] = (views[pathname] || 0) + 1

  next()
})

app.get('/foo', function (req, res, next) {
  res.send('you viewed this page ' + req.session.views['/foo'] + ' times')
})

app.get('/bar', function (req, res, next) {
  res.send('you viewed this page ' + req.session.views['/bar'] + ' times')
})

关于node.js - 如何在express.js中启用 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34344575/

相关文章:

javascript - 了解 Vscode 中的智能感知

javascript - Ajax 调用快速路由不起作用?

django - 选择 session 实现时应该考虑什么?

javascript - 插入逗号时分割字符串并将其添加到字符串数组中

node.js - 将 req.user 传递给 graphQL

node.js - NodeJS 执行上下文

json - 使用 pg-promise 格式化 JSON 输出,将外键封装为对象

python - 如何使用Python登录Facebook/Myspace并爬取内容?

asp.net - 使用 Web.config 和 session 变量控制网站文件夹访问?

JavaScript:将 post 请求 json 字符串附加到现有 json 文件