我正在使用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;
这种情况发生在我的每一次溃败中。 有人知道为什么会这样吗?谢谢
答案 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;