gpt4 book ai didi

node.js - 如何使用主体解析器并表达 session NodeJs 中间件功能

转载 作者:太空宇宙 更新时间:2023-11-04 02:57:15 24 4
gpt4 key购买 nike

我已经开始研究 MEANJS 技术。我一直不清楚body-parse和express-session的一些功能。我也浏览了他们的官方网站,但仍然不清楚。该功能是:-

bodyParser.urlencoded({ extended: true });

bodyParser.json()

expressSession({ resave: true, saveUninitialized: true, })

在某些地方,它会 bodyParser.urlencoded({ Extended: false })expressSession({ resave: false, saveUninitialized: false, })。现在,当使用这些boolean时,请用示例来解释。这样就更清楚了。

最佳答案

中间件 body-parser :

一般来说,此中间件将解析传入 HTTP 请求的正文并填充 req.body 属性,该属性随后可在您的路由和中间件中使用。

body-parser为不同类型的请求体提供不同的解析器。如果您编写以下内容:

var express = require('express');
var bodyParser = require('body-parser');

var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));

第一个 app.use() 将包含 JSON 正文解析器,第二个将包含 URL 编码的表单正文解析器。您需要的解析器取决于您的服务器必须处理的请求类型。关于 extended: falseextended: true 的区别已在 this answer 中进行了解释。 .

中间件 express-session :

此中间件提供了一种简单的方法来处理 Express 应用程序中的 session 和 session 数据。两个配置属性 resavesaveUninitialized 会影响 express-session 存储用户 session 数据的方式。

示例:假设一个新用户正在访问您的网站。 express-session 检测到该用户还没有 session ,因此它将创建一个仅包含 session ID 且不包含任何数据的新 session 。如果您设置 saveUninitialized: true 该 session 将存储在您的 session 存储中,而不包含任何真实的 session 数据。 saveUninitialized: false 将在 session 实际包含某些值时立即存储 session 。 (简单说)

示例:现在假设具有现有 session 的用户正在访问您的网站。请求了一些资源,但用户的 session 数据没有改变。 resave: true 无论如何都会存储未更改的数据,而 resave: false 则不会。

摘要: 设置 app.use(expressSession({resave: false, saveUninitialized: false})); 将减少访问 session 存储的次数,这对于硬件资源和性能而言是有好处的。因此,在大多数情况下,您需要将它们设置为 false

关于node.js - 如何使用主体解析器并表达 session NodeJs 中间件功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38007179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com