Node.js express 4,示例代码中的视图计数不一致
以下代码是从req.session复制的 使用express 4,问题是 视图计数在firefox中起作用。每次页面刷新后,视图都会增加一次 在chrome和opera中,视图数量增加了两倍。这不对吗Node.js express 4,示例代码中的视图计数不一致,node.js,express,Node.js,Express,以下代码是从req.session复制的 使用express 4,问题是 视图计数在firefox中起作用。每次页面刷新后,视图都会增加一次 在chrome和opera中,视图数量增加了两倍。这不对吗 var express = require('express'); var session = require('express-session'); var app = express(); app.use(session({ secret: 'keyboard cat', resav
var express = require('express');
var session = require('express-session');
var app = express();
app.use(session({
secret: 'keyboard cat',
resave: true,
saveUninitialized: true,
cookie: { maxAge: 60000 }
}));
app.use(function(req, res, next) {
var sess = req.session;
if (sess.views) {
//test
debugger;
sess.views = sess.views + 1;
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.end();
} else {
sess.views = 1;
res.end('welcome to the session demo. refresh!');
}
});
app.listen(process.env.PORT || 4000);
var express=require('express');
var会话=需要(“快速会话”);
var-app=express();
应用程序使用(会话)({
秘密:“键盘猫”,
雷萨夫:是的,
saveUninitialized:true,
cookie:{maxAge:60000}
}));
应用程序使用(功能(请求、恢复、下一步){
var sess=请求会话;
if(sess.视图){
//试验
调试器;
sess.views=sess.views+1;
res.setHeader('Content-Type','text/html');
res.write(“视图:”+sess.views+”);
res.write(“在:”+(sess.cookie.maxAge/1000)+“s”)中过期;
res.end();
}否则{
sess.views=1;
res.end('欢迎使用会话demo.refresh!');
}
});
app.listen(process.env.PORT | | 4000);
您应该将其更改为:
app.route('/').get(function(req, res) {
var sess = req.session;
if (sess.views) {
//test
debugger;
sess.views = sess.views + 1;
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.end();
} else {
sess.views = 1;
res.end('welcome to the session demo. refresh!');
}
});
app.route('/').get(函数(req,res){
var sess=请求会话;
if(sess.视图){
//试验
调试器;
sess.views=sess.views+1;
res.setHeader('Content-Type','text/html');
res.write(“视图:”+sess.views+”);
res.write(“在:”+(sess.cookie.maxAge/1000)+“s”)中过期;
res.end();
}否则{
sess.views=1;
res.end('欢迎使用会话demo.refresh!');
}
});
您应该将其更改为:
app.route('/').get(function(req, res) {
var sess = req.session;
if (sess.views) {
//test
debugger;
sess.views = sess.views + 1;
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.end();
} else {
sess.views = 1;
res.end('welcome to the session demo. refresh!');
}
});
app.route('/').get(函数(req,res){
var sess=请求会话;
if(sess.视图){
//试验
调试器;
sess.views=sess.views+1;
res.setHeader('Content-Type','text/html');
res.write(“视图:”+sess.views+”);
res.write(“在:”+(sess.cookie.maxAge/1000)+“s”)中过期;
res.end();
}否则{
sess.views=1;
res.end('欢迎使用会话demo.refresh!');
}
});
是的,您的解决方案正在运行,但我不知道为什么示例代码没有编写。我刚刚读到:expressjs.com/api.html#app.use。app.use(..)默认为“/”,因此它应该可以工作。是的,您的解决方案可以工作,但我不知道为什么示例代码没有编写。我刚刚读到:expressjs.com/api.html#app.use。app.use(..)默认为“/”,因此它应该可以工作。