Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js express 4,示例代码中的视图计数不一致_Node.js_Express - Fatal编程技术网

Node.js express 4,示例代码中的视图计数不一致

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

以下代码是从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',
  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(..)默认为“/”,因此它应该可以工作。