编写两段代码,第一段代码实现将自已的姓名添加至名为“name”的cookie中,第二段代码实现读出名为“name”的cookie中的值并输出。 使用session来完成记住登录状态的练习。
时间: 2024-11-20 16:43:49 浏览: 23
首先,让我们理解一下如何使用JavaScript(前端)来操作浏览器的Cookie以及Session(在Node.js服务器端)。这里我们假设你正在使用Express作为Node.js的Web框架。
**设置Cookie(添加用户名到cookie)的JavaScript代码(前端)**:
```javascript
// 假设有一个函数用于获取用户输入的姓名
function getUserFirstName() {
return "Your Name";
}
// 创建一个名为"name"的Cookie,并将其设置为用户姓名
document.cookie = `name=${getUserFirstName()}; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/`;
```
**读取Cookie(从cookie中获取姓名)的JavaScript代码(前端)**:
```javascript
// 定义一个函数来获取指定名称的cookie值
function getCookieValue(name) {
const cookies = document.cookie.split(';');
for (let i = 0; i < cookies.length; i++) {
const cookiePair = cookies[i].trim().split('=');
if (cookiePair[0] === name) {
return decodeURIComponent(cookiePair[1]);
}
}
return null;
}
// 读取并输出name cookie的值
const nameFromCookie = getCookieValue('name');
console.log(`Name from cookie: ${nameFromCookie}`);
```
**在Node.js Express中处理Session(记住登录状态)的代码(服务器端)**:
```javascript
const express = require('express');
const session = require('express-session');
const app = express();
app.use(
session({
secret: 'your_secret_key', // 你需要设定一个安全的秘钥
resave: false,
saveUninitialized: true,
cookie: { secure: process.env.NODE_ENV === 'production' },
})
);
app.get('/set-session', (req, res) => {
req.session.user = { name: 'Your Name' };
res.send({ message: 'User logged in and session set.' });
});
app.get('/get-session', (req, res) => {
if (req.session.user) {
res.send({ user: req.session.user });
} else {
res.send({ message: 'No session data found.' });
}
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
```
在这个例子中,当用户访问'/set-session'时,会将用户的登录信息存储在session里。之后访问'/get-session'可以读取到之前设置的session数据。
阅读全文