- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我对 session 有很大的疑问。
我致力于围绕“Redis”nodejs 创建一个应用程序,使用不同的库作为 express。
但是突然之间 session 不再有效。我不明白为什么。所以我重新格式化了我的服务器并正确地重新安装。(我使用的是 Debian 6)
而且基本测试仍然不起作用:(.
这是测试:
var express = require('express');
var app = express.createServer();
var RedisStore = require('connect-redis')(express);
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({ secret: "keyboard cat", store: new RedisStore }));
app.get('/', function(req, res){
var sess = req.session;
req.session.visitCount = req.session.visitCount ? req.session.visitCount + 1 : 1;
if (sess.views) {
res.setHeader('Content-Type', 'text/html');
res.write('<p>views: ' + sess.views + '</p>');
res.write('<p>expires in: ' + (sess.cookie.maxAge / 1000) + 's<p/>');
res.write('<p>You have visited this page ' + req.session.visitCount + ' times</p>');
res.end();
sess.views++;
} else {
sess.views = 1;
res.end('welcome to the session demo. refresh!');
}
});
app.listen(4000);
程序运行正确(没有错误)。但是当我使用“sess.views”时永远无效
所以我总是看到:欢迎来到 session 演示。刷新!
我有点绝望。
预先感谢您的帮助
最佳答案
我相信 sess.views++
需要在 res.end()
之前调用,就像 TJ's example
var express = require('express');
var app = express.createServer();
var RedisStore = require('connect-redis')(express);
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({ secret: "keyboard cat", store: new RedisStore }));
app.get('/', function(req, res){
var sess = req.session;
req.session.visitCount = req.session.visitCount ? req.session.visitCount + 1 : 1;
if (sess.views) {
res.setHeader('Content-Type', 'text/html');
res.write('<p>views: ' + sess.views + '</p>');
res.write('<p>expires in: ' + (sess.cookie.maxAge / 1000) + 's<p/>');
res.write('<p>You have visited this page ' + req.session.visitCount + ' times</p>');
sess.views++;
res.end();
} else {
sess.views = 1;
res.end('welcome to the session demo. refresh!');
}
});
app.listen(4000, '127.0.0.1');
alfred@alfred-laptop:~/database/redis-2.2.0-rc4/src$ npm ls
/home/alfred
├── connect-redis@1.0.6
├─┬ everyauth@0.2.15
│ ├─┬ connect@1.5.2
│ │ ├── connect-redis@1.0.6 extraneous
│ │ ├── mime@1.2.2
│ │ └── qs@0.2.0
│ ├── oauth@0.9.2
│ ├── openid@0.1.8
│ ├── restler@0.2.1
│ └─┬ xml2js@0.1.9
│ └── sax@0.1.4
├─┬ express@2.4.1
│ ├─┬ connect@1.5.2
│ │ ├── connect-redis@1.0.6 extraneous
│ │ ├── mime@1.2.2
│ │ └── qs@0.2.0
│ ├── mime@1.2.2
│ └── qs@0.2.0
├── hiredis@0.1.12
├── jade@0.12.4
├── node-expat@1.3.2
├── node-stringprep@0.0.5
├─┬ node-xmpp@0.2.9
│ └── ltx@0.0.5
├── nodeunit@0.5.1
├── notifo@0.0.2
├── openid@0.2.0
├─┬ optimist@0.2.5
│ └── wordwrap@0.0.1
├── recaptcha@1.1.0
├── redis@0.6.6
└─┬ socket.io@0.7.6
├── policyfile@0.0.3
├── redis@0.6.0
└── socket.io-client@0.7.3
alfred@alfred-laptop:~/database/redis-2.2.0-rc4/src$ npm -v
1.0.15
alfred@alfred-laptop:~/database/redis-2.2.0-rc4/src$ node -v
v0.4.9
alfred@alfred-laptop:~/database/redis-2.2.0-rc4/src$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.10
DISTRIB_CODENAME=maverick
DISTRIB_DESCRIPTION="Ubuntu 10.10"
alfred@alfred-laptop:~/node/stackoverflow/6700472$ curl -c cookie http://localhost:4000/
welcome to the session demo. refresh!alfred@alfred-laptop:~/node/stackoverflow/6700472$ curl -b cookie http://localhost:4000/
<p>views: 1</p><p>expires in: 14396.223s<p/><p>You have visited this page 2 times</p>alfred@alfred-laptop:~/node/stackoverflow/6700472$ curl -b cookie http://localhost:4000/
<p>views: 2</p><p>expires in: 14399.221s<p/><p>You have visited this page 3 times</p>alfred@alfred-laptop:~/node/stackoverflow/6700472$
工作得很好!
关于 session 突然不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6700472/
无论我在做什么,我都会得到这个输出,但模拟器不会启动,新创建的模拟器也不会启动。我在 Windows 下: 警告:./android/base/files/IniFile.cpp:155:无法处理 .
我用 package.json NPM 脚本中像这样的变量: // package.json { "version": "0.12.1", "scripts": { "get-vers
几天前,Facebook 与我们网站的连接突然停止工作,代码没有任何更改??? Facebook 做了一些改变??? http://www.presbium.sk/vstup-pre-uchadzac
我习惯于 grunt build 任务成功完成,但由于我将我的项目编辑与其他开发人员同事合并,它突然失败并出现我以前从未见过的错误: grunt build Loading "imagemin.js"
我不明白这个。突然之间,我无法使用 iOS 9.0 中引入的 UIUserNotificationActionResponseTypedTextKey 标识符来访问通知中的文本输入消息。 Xcode
在我调用某个 Google 的 Youtube 库后,我的应用程序在其回调之一后突然变得完全没有响应。 无响应意味着无法点击所有 UI 组件。 在 iOS 中是否有这样的东西可以禁用整个屏幕完全不响应
bool queueIsFull(int rearPointer) { if(rearPointer==9) return 1; else return
我正在使用 PHP、Apache 和 MySQL 开发 Web 应用程序。在过去的一年中,此应用程序的响应时间一直不错。昨天,应用程序在 Firefox 上突然变得非常慢(完整的页面加载,包括 CSS
几个小时后,从控制台发出的 PHP 命令不再接受本地路径。例如在 laravel 中我总是给出命令 php artisan 但从今晚开始我收到了以下回复 Status: 404 Not Found C
我有一个 session WCF 服务,它生成一个进程并在调用 IsInitiating 操作时打开一个到该进程的命名管道。当调用 IsTerminating 操作时,服务会沿着管道发送一条消息,通知
类似的问题已经回答了好几次,我确实检查了其中的许多问题。这是不同的,请继续阅读。 我在 strings.xml 中定义了大量(大量)字符串,并带有多个格式参数。例如: %s and also %s 这
我有一个简单的消息机器人,它是根据 Messenger 平台指南设置的。在过去的几个月里,它一直运行良好,每天发送大约六条消息。我根本没有碰它,但是突然,发送消息,即调用 https://graph.
我正在使用 Unity 开发一款简单的 3D 手机游戏。我的目标是在没有垂直同步的情况下达到 30 FPS。我的游戏在所有 iOS 设备上运行良好,没有发热和节流,但有奇怪的 FPS 下降。 FPS
我们有一个自定义小部件,多年来一直运行良好,直到上周。 看来 Json 回调现在仅适用于播放列表,不适用于轨道。 播放列表 /**/jQuery31108094578850496614_1482167
-bash:/Users/winchenzo/git-completion.bash: 没有那个文件或目录 -bash:/Users/winchenzo/git-prompt.sh: 没有那个文件或目
编辑:重启解决了问题。我仍然想知道最初是什么原因造成的,因为这种情况以前发生过一次,但我不记得当时我做了什么来修复它(当时重新启动并没有解决问题)。 我 cd 到包含我要编辑的文件的文件夹,然后从命令
我刚刚注册是因为我突然遇到了一个问题,目前为止运行良好的代码我之前在这里找到了一些非常好的答案。希望你们能再次帮助我,这次甚至是投票;) $sql='SELECT projektKurz, proje
我制作了一个小程序,它在 tcp 套接字上监听和发送线路,并将接收到的信息附加到 JTextArea。我用它在 Minecraft 服务器上聊天,而无需打开游戏。 我昨晚工作得很好,但当我起床时却不工
感谢您在这里查看我的问题。 我正在使用 Glide 从 Firebase 存储中获取图像,基本上我是在使用 url 从存储中获取图像。第一天它工作正常但突然停止获取图像。我没有碰代码。我检查了很多答案
FCM 通知已到达所有 iOS 设备。但通知在大约 1 年前注册的某些设备上不起作用。 FCM token 和 APNs token 似乎没有变化。为什么没有到达通知? FCM token 是否必须过
我是一名优秀的程序员,十分优秀!