Node.js Cookie解析器停止页面加载

时间:2019-02-20 18:04:07

标签: node.js express cookies

我正在使用Node.js和Express创建一个网站。我正在使用cookie-parser创建一个cookie以存储序列。 我还使用express.Router()进行路由。

当我使用router.use(cookieParser)并尝试加载页面时,它将永远不会加载。我已经注释掉该行,并且可以再次工作。我没有收到任何错误消息。

代码如下:

const express = require('express');
const router = express.Router();
const cookieParser = require('cookie-parser');

router.use(cookieParser);

router.get('/', (req, res, next) => {
    var i = 0;
    //shuffle the sequence array
    while (i++ < 10) {
      const a = Math.floor(Math.random() * 5);
      const b = Math.floor(Math.random() * 5);

      if (a !== b) {
        var temp = sequence[a];
        sequence[a] = sequence[b];
        sequence[b] = temp;
      }
    };
  res.cookie('sequence', JSON.stringify(sequence));
  res.redirect('./article');
  console.log(sequence);
  //res.redirect('./article');
});



module.exports = router;

这种情况发生在我的每一次溃败中。 有人知道为什么会这样吗?谢谢

2 个答案:

答案 0 :(得分:2)

通过

修复
router.use(cookieParser());

代替

router.use(cookieParser);

第4行代码

答案 1 :(得分:0)

在创建新的路由URL的特定于路由路径的签名时,应使用Router方法。您应该将cookie解析器对象设置为表示对象。试试下面的代码,看看。

const express = require('express');
const cookieParser = require('cookie-parser');
const app = express();
app.use(cookieParser());

app.get('/', (req, res, next) => {
var i = 0;
//shuffle the sequence array
while (i++ < 10) {
  const a = Math.floor(Math.random() * 5);
  const b = Math.floor(Math.random() * 5);

  if (a !== b) {
    var temp = sequence[a];
    sequence[a] = sequence[b];
    sequence[b] = temp;
  }
};
res.cookie('sequence', JSON.stringify(sequence));
res.redirect('./article');
console.log(sequence);
//res.redirect('./article');
});



module.exports = app;