可能的原因是服务器上的 cookie-parser 中间件没有正确配置。以下是一个正确配置 cookie-parser 的示例:
const express = require('express');
const cookieParser = require('cookie-parser')
const app = express();
app.use(cookieParser());
app.get('/', function(req, res) {
if(req.cookies['session']) {
res.send('You are logged in!');
} else {
res.cookie('session', '1');
res.send('You are not logged in! Logging you in...');
}
});
app.listen(3000, function() {
console.log('Server listening on port 3000');
});
在示例中,我们通过 app.use(cookieParser())
添加了 cookie-parser 中间件。它将解析来自客户端的 cookie,并将其作为 req.cookies
对象的属性设置。
接下来,我们检查 req.cookies['session']
属性是否存在来确定用户是否已登录。如果该属性存在,则用户已登录,我们将向客户端发送“您已登录!”消息。否则,我们设置名为“session”的 cookie,并将“您未登录!正在登录您...”消息发送回客户端。
请确保在部署 Express 服务器时正确配置 cookie-parser 中间件。这可以确保正确创建会话。