我有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 存储。
基本用法:
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/