我已经开始研究MEANJS技术了。我一直不清楚身体解析和快速会话的一些功能。我也通过他们的官方网站,但仍然不清楚。这些功能是: -
bodyParser.urlencoded({ extended:true});
bodyParser.json()
expressSession({resave:true,saveUninitialized:true,})
在某些地方,它会bodyParser.urlencoded({ extended: false })
和expressSession({ resave: false, saveUninitialized: false, })
。现在使用这些boolean
时,请使用示例进行说明。所以它会更清楚。
答案 0 :(得分:5)
中间件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: false
和extended: true
的区别已在this answer中解释。
中间件express-session:
此中间件提供了一种在快捷应用中处理会话和会话数据的简便方法。两个配置属性resave
和saveUninitialized
会影响express-session
存储用户会话数据的方式。
示例:假设有新用户访问您的网站。 express-session
检测到此用户还没有会话,因此它将创建一个仅包含会话ID且没有数据的新会话。如果设置saveUninitialized: true
,则此会话将存储在会话存储中,而不包含任何实际会话数据。 saveUninitialized: false
会在实际包含某些值时立即存储会话。 (简单地说)
示例:现在假设具有现有会话的用户正在访问您的网站。请求了一些资源,但用户的会话数据没有变化。 resave: true
无论如何都会保存未更改的数据,而resave: false
则不会。
摘要:设置app.use(expressSession({resave: false, saveUninitialized: false}));
将减少访问会话存储的次数,这对硬件资源和性能有益。因此,在大多数情况下,您需要将它们设置为false
。