在 web 应用程序中,cookie 和 session 都是非常常见的技术。它们都用于在客户端和服务器之间存储信息,以便于跟踪用户的状态和提供个性化的服务。在 Express.js 中,你可以很容易地使用 cookie 和 session。
Cookie
cookie 是一种存储在客户端浏览器中的小型文本文件,用于存储有关用户的信息。在 Express.js 中,可以使用 cookie-parser
中间件来解析 cookie。下面是一个示例:
// javascriptcn.com 代码示例 const express = require('express'); const cookieParser = require('cookie-parser'); const app = express(); app.use(cookieParser()); app.get('/', (req, res) => { res.cookie('username', 'john'); res.send('Cookie has been set'); }); app.listen(3000, () => { console.log('Server is running on port 3000'); });
在上面的示例中,我们使用了 cookie-parser
中间件来解析 cookie。然后我们在根路由中设置了一个名为 username
的 cookie,其值为 john
。
可以使用 res.clearCookie(name)
方法来删除 cookie。例如,下面的示例删除了名为 username
的 cookie:
app.get('/clear_cookie', (req, res) => { res.clearCookie('username'); res.send('Cookie has been cleared'); });
Session
session 是一种在服务器上存储用户信息的技术。与 cookie 不同,session 存在于服务器上,而客户端只存储一个 session ID。在 Express.js 中,可以使用 express-session
中间件来创建和管理 session。下面是一个示例:
// javascriptcn.com 代码示例 const express = require('express'); const session = require('express-session'); const app = express(); app.use(session({ secret: 'mysecret', resave: false, saveUninitialized: true, cookie: { secure: false } })); app.get('/', (req, res) => { req.session.username = 'john'; res.send('Session has been set'); }); app.listen(3000, () => { console.log('Server is running on port 3000'); });
在上面的示例中,我们使用了 express-session
中间件来创建和管理 session。我们在根路由中设置了一个名为 username
的 session,其值为 john
。
可以使用 req.session.destroy()
方法来销毁 session。例如,下面的示例销毁了 session:
app.get('/logout', (req, res) => { req.session.destroy(); res.send('Session has been destroyed'); });
总结
在本文中,我们介绍了在 Express.js 中如何使用 cookie 和 session。我们使用了 cookie-parser
中间件来解析 cookie,使用了 express-session
中间件来创建和管理 session。这两种技术都是非常常见的,可以用于跟踪用户状态和提供个性化的服务。在实际的 web 应用程序中,你可能需要使用这两种技术的一种或两种来实现你的需求。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6509545a95b1f8cacd40fd50