如何在 Node.js 中存储请求级变量?

2024-03-25

对于只需要在单个请求期间可用的数据,应该将其存储在哪里? 我正在 req 和 res 对象上创建新属性,因此我不必将数据从一个函数传递到另一个函数。

req.myNewValue = 'just for this request'

进程对象是一个选项吗?或者它是否在所有请求中全局共享?


在 Express 4 中,最佳实践是将请求级别变量存储在当地人资源 http://expressjs.com/en/api.html#res.locals.

包含作用域为响应局部变量的对象 请求,因此仅适用于在期间呈现的视图 该请求/响应周期(如果有)。否则,该属性是 与 app.locals 相同。

此属性对于公开请求级信息非常有用,例如 请求路径名称、经过身份验证的用户、用户设置等。

app.use(function(req, res, next){
  res.locals.user = req.user;
  res.locals.authenticated = ! req.user.anonymous;
  next();
});

The process对象由所有请求共享,不应按请求使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Node.js 中存储请求级变量? 的相关文章

  • 如何使用特定版本的NPM?

    如何切换我正在使用的 npm 版本 现在 npm v 1 1 65 但我需要 1 0 x 我尝试过 但出现错误 npm version 1 0 npm ERR version No package json found 有人知道如何使用不同
  • Node.js“需要”其他文件而不需要命名空间

    我正在将代码库从 100 浏览器端切换为浏览器端和服务器端的混合 我发现的问题是 要让我的代码使用 node js 运行 我必须使用模块 为了将我的代码变成模块 需要对几乎所有代码进行巨大的重构 原因是在浏览器上 许多功能是跨文件使用的 而
  • Node.js + Socket.io + Windows 7 / 8?

    我一直在到处寻找 但似乎找不到解决方案 是否可以在 Windows 7 上的 Node js 上安装 Socket io 如果没有 是否有某种替代方案 或者您知道未来有任何 Windows 支持吗 通常使用 Node js 包管理器 但是我
  • Docusaurus 2 中的自定义搜索栏

    我正在尝试 Docusaurus V2 我想使用 LUNR 启用离线搜索 https lunrjs com https lunrjs com 按照本博客中的描述进行搜索 https v2 docusaurus io feedback p o
  • keystonejs 模型中的动态类型选择

    我想在 adminUI 中使用一个组合框 其中包含来自 Web 服务的字段 我正在考虑使用预 查找 挂钩获取数据 然后覆盖模式中 受众 属性的选项属性 Schema Compliance add title type Types Text
  • 如何从 Node.js 中的 Http.IncomingMessage 检测 http 与 https

    给定一个Http IncomingMessage由一个创建http s Server为了响应请求 检测请求是否是 http 与 https 的正确 推荐方法是什么 一些我不知道的随机想法是否正确 检查端口 seems wrong might
  • 如何调试 Node.js 应用程序?

    如何调试 Node js 服务器应用程序 现在我主要使用警报调试打印语句如下 sys puts sys inspect someVariable 一定有更好的调试方法 我知道谷歌浏览器 http en wikipedia org wiki
  • 如何在 Alexa 中循环播放音频

    我正在为 Alexa 构建睡眠环境音频技能 我正在尝试循环播放音频 这样我就不必下载 10 小时版本的音频 如何让音频正常工作 我将其构建到将播放音频但不循环播放的位置 我已经在我的造雨者技能中解决了这个问题 https www amazo
  • npm install 不起作用,抛出错误

    我正在尝试在 nodejs 中安装 yo 和其他一些软件包 但是我不断收到错误 我是节点新手 所以我有点迷失 我运行的是 Mac OS X 10 10 3 我正在使用的命令是 sudo npm install global yo 这样做会给
  • 有没有办法将击键发送到节点中的终端?

    我特别想发送 ctrl l 清除终端 这样每次我测试脚本时终端都是干净的 如果您使用的是 Linux console log 033 2J 如果你使用的是 Windows 我认为这可行 将光标设置在 0 0 var util require
  • Node.js Async/Await 模块导出 [重复]

    这个问题在这里已经有答案了 我对模块创建有点陌生 想知道 module exports 并等待异步函数 例如 mongo connect 函数 完成并导出结果 在模块中使用 async await 正确定义了变量 但是当尝试通过要求模块来记
  • Heroku ENOENT:没有这样的文件或目录,stat '/app/build/index.html'

    我在 Heroku 中运行一个简单的测试站点时遇到问题 由于某种原因 当我希望它从 build 提供服务时 它试图从 app build 提供内容 错误 ENOENT 没有这样的文件或目录 stat app build index html
  • Sails.js - 如何更新嵌套模型

    attributes username type email validated by the ORM required true password type string required true profile firstname s
  • npm 错误! cb.apply 不是函数

    我收到这个错误 npm ERR cb apply is not a function 在Linux中做的时候npm install虽然我的npm版本是6 9 0 我的节点版本是v12 18 3 如何解决这个问题 如果您共享的是 Window
  • 如何获取knex / mysql中所有更新记录的列表

    这是我正在处理的查询 return knex table returning id where boolean false andWhere fooID foo id update boolean true limit num then f
  • 使用 ObjectId 键和字符串数组定义映射作为 mongoose 模式中的值

    我在为数据库创建 Mongoose 架构时遇到问题 我想创建一个以 objectId 作为键 以字符串值数组作为值的映射 我能得到的最接近的是 var schema new Schema map myId type mongoose Sch
  • 在 Redis 上为 Django 和 Express.js 应用程序共享会话存储

    我想创建一个包含一些登录用户的 Django 应用程序 另一方面 由于我想要一些实时功能 所以我想使用 Express js 应用程序 现在的问题是 我不希望身份不明的用户访问 Express js 应用程序的日期 因此 我必须在 Expr
  • 计算两点之间的最短路线

    过去几周我一直在开发一款多人 HTML5 游戏 使用nodejs and websockets 我已经被这个问题困扰了一段时间 想象一下 我用数组实现了这个平铺地图 如下所示 1 or 棕色瓷砖 路上有障碍物 玩家无法通过 0 or 绿色瓷
  • 使用无服务器访问 SSM 变量

    我想用无服务器变量中的 SSM 参数 https serverless com blog serverless v1 22 0 按照文档 我运行了以下命令 aws ssm put parameter name foo value bar t
  • 动态更改温斯顿的日志级别

    我尝试在运行时实现日志级别更改 我一直在关注https github com yannvr Winston dynamic loglevel blob master test https github com yannvr Winston

随机推荐

  • 自动完成“不是一个函数”

    我们已经在一个简单的 HTML 页面中测试了 Jquery UI jquery ui 1 8 10 custom min js 自动完成功能 该功能有效 然后 我们将相同的代码复制到 Asp net 用户控件中 它就会停止工作 Javasc
  • C# 中 RAM 耗尽时会发生什么?

    我不是计算机专家 所以让我尝试更具体地提出这个问题 我做了一些科学计算 计算有时需要大量内存来存储结果 几天前 我的输出文件占用了 4 GB 的硬盘空间 但我有这么大的 RAM 所以 当您运行的程序分配的内存多于计算机中可用的内存时 CLR
  • 如何将毫秒转换为日期字符串?

    我从服务器得到一个毫秒字符串 如下所示 1345623261 我如何将其转换为正常的日期格式 例如2012 年 8 月 30 日 我尝试使用setMilliseconds 像这样 new Date setMilliseconds time
  • 用不同的猜名称猜数字游戏

    这是我第一次使用 stackoverflow 进行访问 我是编程新手 正在学习 Python 初学者课程 很高兴开始 我们的第二个作业要求我们创建著名的猜数字游戏 对于那些已经了解这个游戏的人 我希望对添加到其中的额外部分提供一些帮助 我们
  • Robolectric junit 测试 - 缺少互联网许可

    我正在为 ma 应用程序开发一些 JUnit 测试 我需要使用 Robolectric Roboguice 库 我现在想做的只是简单的测试 检查 Activity 是否不为空 这是我的代码 RunWith RobolectricGradle
  • VS 解决方案文件的 Windows 资源管理器上下文菜单中的“构建”项?

    我想知道为什么默认情况下不集成它 我希望在 VS 解决方案文件的 Windows 资源管理器的文件上下文菜单中有一个项目来构建它 有这个工具吗 或者我必须自己创建这个 MSBuild Shell 扩展已经存在多年了 http msbuild
  • Jackson 反序列化抽象类

    我正在尝试使用 JSON ObjectMapper 反序列化对象 尝试反序列化时我看到以下错误 com fasterxml jackson databind JsonMappingException 无法构造 com phoenix typ
  • 如何隐藏微调器下拉菜单android

    我想隐藏外部点击时弹出的微调提示 如果提示弹出窗口打开并且用户按主页键活动将最小化 因此当用户再次打开应用程序时 提示弹出窗口应该消失 有什么办法可以实现这一点吗 谢谢 编辑 提示弹出窗口未自定义 所以我不能把它们藏起来onPause or
  • 为什么 Postgres 复制流在单独的函数中使用时不起作用?

    我正在研究 postgres 复制流 API 在处理它的过程中遇到了异常行为 当我使用复制槽在主块内编写整个代码时 一切正常 public class Server implements Config public static void
  • 如何使用LocalBroadcastManager?

    如何使用 定位LocalBroadcastManager如中所述谷歌文档 http developer android com reference android support v4 content LocalBroadcastManag
  • 我可以按顺序链接异步任务吗(在上一个异步任务完成后开始一个)

    每次我做一个httpRequest 当代码执行时 屏幕会被锁定几秒钟 因此我用了AsyncTask做我所有的httpRequest东西在一个单独的线程 同时提出ProgressDialog所以用户知道发生了什么事 我最近遇到了以下情况 我的
  • 角-聚合物相互作用

    我计划尝试 AngularJS 中的一个项目 其中所有组件都将使用 Polymer 开发 在开始这个项目之前 我有几个疑问 使用 Angular 服务获取数据后 我可以更新 Polymer 组件数据模型 也可以通过 UI 吗 如果是 那么如
  • 之前和之后的样式输入范围

    我正在关注这个方法 http css tricks com styling cross browser compatible range inputs css 来自 CSS Tricks 来设置输入范围的样式 并尝试使用之前和之后的伪类 下
  • Breeze JS - 带有 EFContextProvider 的存储库,启用/禁用 OData 过滤

    我正在寻找使用微风 EFContextProvider 实现存储库模式 在此存储库中 我将公开一种使用 OData 过滤来查询数据库的方法 就像默认情况下微风的行为一样 我还想公开一个忽略 OData 过滤的方法 并返回一个元素列表 就好像
  • 检测所有摄像头android

    我有一个使用 Camera2 API 来获取相机预览的应用程序 我想在手机的镜头之间进行选择 在我的代码中 我使用以下代码 CameraManager manager CameraManager activity getSystemServ
  • 按数字顺序对目录中的文件进行排序和列出

    这是我的文件夹结构 home files encounters 9 22 11 0 jpg home files encounters 9 22 11 n jpg puts Dir glob home files jpg 0 当我执行上面的
  • Money_format() 选项

    我正在查看 php 中的 Money format 函数 并对如何让它按照我想要的方式格式化感到困惑 我不想在字符串前面有 USD 我想要每 3 位数字和 2 位小数点有一个逗号 因此 12345 67 将被格式化为 12 345 67 T
  • 如何创建接受可变数量参数的 Java 方法?

    比如Java自己的String format 支持可变数量的参数 String format Hello s ABC d World 123 gt Hello World ABC 123 如何创建自己的函数来接受可变数量的参数 后续问题 我
  • 如何将动态对象转换为 JSON 字符串 C#?

    我有以下从第三方库获得的动态对象 IOrderStore os ss GetService
  • 如何在 Node.js 中存储请求级变量?

    对于只需要在单个请求期间可用的数据 应该将其存储在哪里 我正在 req 和 res 对象上创建新属性 因此我不必将数据从一个函数传递到另一个函数 req myNewValue just for this request 进程对象是一个选项吗