使用 Node 和 Express 向请求添加属性

Joa*_*oao 6 properties request mean express

我有一个 MEAN 应用程序,我正在使用护照处理身份验证。我想要做的正是护照上的用户会发生什么,可以从像req.user. 我还没有找到任何解决方案来达到这个结果。你能给我任何建议吗?

k10*_*der 13

您可以通过创建中间件并在您的应用程序中使用它来向请求或响应对象添加属性。例如

// Defining middleware
function myMiddleware(req, res, next) {
  req.myField = 12;
  next();
}
// Using it in an app for all routes (you can replace * with any route you want)
app.use('*', myMiddleware)
Run Code Online (Sandbox Code Playgroud)

现在处理程序中的所有请求对象都将具有myField属性。

  • 对性能影响不大。你应该永远记住,过早的优化是一种罪恶。正在为来自客户端的每个单独请求创建请求对象,因此您可以在此处存储与客户端相关的信息。如果您在通行证中间件之后添加此中间件,那么您将获得对用户属性、会话等的访问权限,就像在每个请求处理程序中一样。 (3认同)

AxD*_*xDu 7

要向请求和响应对象添加额外的属性,您需要扩展响应和请求接口。

\n

index.d.ts 文件用于提供有关用 JavaScript 编写的\xe2\x80\x99s 模块的打字稿类型信息。对于express,index.d.ts 存在于node_modules 文件夹内的@types/express 文件夹中。

\n

使用此链接-\n https://dev.to/kwabenberko/extend-express-s-request-object-with-typescript-declaration-merging-1nn5

\n