Passport.deserializeUser 为每个 HTTP 请求执行 DB(sequelize)命令

2023-11-24

我使用sequelize作为ORM和passport.js(passport-local)进行身份验证。我注意到每个 HTTP 请求都会产生一个单独的数据库命令。我开始研究 deserializeUser() 函数。

加载单个页面时,这就是我得到的:

执行:SELECT * FROMUsers WHERE Users.id=1 限制 1;

一遍一遍又一遍!

获取/200 12 毫秒 - 780

执行:SELECT * FROMUsers WHERE Users.id=1 限制 1;

执行:SELECT * FROMUsers WHERE Users.id=1 限制 1;

一遍一遍又一遍!

获取 /js/ui.js 304 4ms

一遍一遍又一遍!

获取/stylesheets/main.css 304 6ms

执行:SELECT * FROMUsers WHERE Users.id=1 限制 1;

一遍一遍又一遍!

获取/images/logo.jpg 304 3ms

这是 Passport.deserializeUser 的外观:

passport.deserializeUser(function(id, done) {
    User.find(id).success(function(user) {
        console.log('Over and over and over!');
        done(null, user);
    }).error(function(err) {
        done(err, null);
    });
});

我请求的页面是:

index: function(req, res) {
    res.render('index', {
        title: "Welcome to EKIPLE!",
        currentUser: req.user
    });
}

deserializeUser 是否应该针对请求的每个图像、html、css 文件运行?如果是这样,有没有办法减少对数据库的请求数量?


这是中间件顺序不正确的典型结果。你应该app.use(或等效的)处理静态资源的中间件(通常express.static or connect.static) before you app.usePassport 中间件。对于处理不需要通过 Passport 运行的请求的其他中间件也是如此。

这样,对静态资源的请求将永远不会到达 Passport 中间件,因此不会导致那些不必要的数据库请求。

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

Passport.deserializeUser 为每个 HTTP 请求执行 DB(sequelize)命令 的相关文章

  • 如何在node.js解析查询中设置dns服务器?

    我正在尝试设置 Google DNS 服务器8 8 8 8在 Node js 中解析查询 这样做的正确方法是什么 在命令行中通常我们可以执行以下操作 nslookup stackoverflow com 8 8 8 8 Server 8 8
  • Webpack 在 @font-face 处失败

    我在使用 Webpack 和 FontAwesome 时遇到问题 这是我的装载机 module loaders test js jsx exclude node modules loader babel loader test jade e
  • 如何使用 mysql 模块在 Nodejs 上列出 mysql 中的列

    我想在nodejs上使用模块mysql列出表中的列 当我运行查询时 SHOW COLUMNS FROM tableName WHERE FIELD columnName 工作正常 我可以知道该列是否存在 但我想列出这些列 并获得一个对象列表
  • 我应该使用包管理器还是从源代码在 Ubuntu 上安装 node.js?

    有谁知道从源代码安装最新版本是否是一条危险的路线 我应该坚持使用包管理器吗 目前的建议 Use 在 Linux 上安装节点 https github com dweldon install node on linux如果您想要使用您的用户帐
  • MeteorJS:用户集合如何公开新字段

    我在用户集合中添加了新字段 但是当我在客户端 Meteor user cart 中访问它时 cart 是我的新字段 其未定义 如何公开新字段 购物车 以便可以在客户端中访问 最简单的方法是添加一个null发布者将自动发送数据 无需订阅 请务
  • Node.js:如何将流读入缓冲区?

    我编写了一个非常简单的函数 从给定的 URL 下载图像 调整其大小并上传到 S3 使用 gm 和 knox 我不知道我是否正确地将流读取到缓冲区 一切正常 但这是正确的方法吗 另外 我想了解有关事件循环的一些信息 我如何知道函数的一次调用不
  • 尝试安装 gulp 时 npm 挂起

    UPDATED 当我尝试使用 npm install 或任何变体安装任何软件包时 npm install gulp g verbose npm install gulp verbose npm install gulp npm instal
  • 在spawn中使用两个命令(使用管道|)

    我正在内存中将文档转换为 pdf unoconv 并在终端中打印 pdftotext unoconv f pdf stdout sample doc pdftotext layout enc UTF 8 out txt 工作中 现在我想使用
  • 找到 Webpack 配置文件但未配置条目

    我正在尝试为我的个人项目组织一个 webpack 2 模板webpack dev server并使用 npm 命令运行它 但我收到此错误 Configuration file found but no entry configured 这很
  • setInterval 可以随时间漂移吗?

    我有 2 个 Node js 网络服务器 我在网络服务器内缓存数据 我根据系统时间同步缓存加载 清除 我已经完成了所有主机的时间同步 现在我使用以下代码每 15 分钟清除一次缓存 millisTillNexthour Calculate m
  • Firebase 函数,admin.database().ref(...).get() 不是函数

    我正在开发一个 Android 应用程序 并使用 firebase 作为它的后端 我正在尝试让通知系统正常工作 该系统依赖于监听数据库中的更改 但遇到问题 因为我收到以下错误 想知道是否有人能够提供帮助 可以提供任何额外的代码 Fireba
  • 如何在 package.json 中对嵌套子模块和 TypeScript 使用“导出”?

    我想利用新的优势 出口 https nodejs org api packages html packages exportsNode js 的功能package json这样我就可以执行以下操作 exports dist index js
  • 在node.js中使用pug在表单“post”之后发送空的{}

    我正在尝试使用 fetch 和以下 pug 代码通过 post 将表单数据从登录页面传递到登录页面 form id form login input type text name email value placeholder Tu ema
  • 如何在控制台上打印来自post请求的数据

    我正在尝试在控制台上打印发布数据 app js var express require express http require http var app express app set port process env PORT 7002
  • 未加载测试环境的节点 dotenv 文件

    我有两个 dotenv 文件 一个用于开发 另一个用于测试 const dotenv require dotenv if process env process env NODE ENV dotenv config path env pro
  • Mongodb更新很多

    我正在使用express js 和 npm 模块 mongodb 进行开发 并以 mongodb 作为数据库 我有两个集合 即 用户 和 活动 一个用户可能有数千个活动 首先 我将用户的 id 姓名和图片 url 存储到 关系的活动文件 请
  • Child_process 处理带有回车符 (\r) 的 STDOUT 流

    我正在编写一个简单的应用程序 它允许工作中的内部系统请求从远程服务器到使用 REST 调用发起的另一个远程服务器的复制过程 使用 rsync 我已经对express框架足够熟悉 并且刚刚开始尝试child process库 并偶然发现了一个
  • nodejs mocha suite 未定义错误

    我正在尝试使用摩卡运行一些测试 但似乎无法克服这个错误 E tdd nodejs cart gt mocha cart test js node js 201 throw e process nextTick error or err Re
  • express 或express-generator:我需要两者吗?

    只是探索 Node js 并遇到了 Express 在 npm 存储库站点上https www npmjs com package express https www npmjs com package express它明确指出安装是 np
  • 如何在nodejs缓冲区中存储整数?

    节点jsBuffer http nodejs org docs v0 4 12 api buffers html是相当膨胀 然而 它似乎适合存储字符串 构造函数采用字符串 字节数组或要分配的字节大小 我使用的是 Node js 0 4 12

随机推荐

  • 如何将 selenium chrome 选项添加到“desiredCapability”?

    对于 selenium 我有很多 chrome 选项 我需要通过以下方式将其传递给远程网络驱动程序DesiredCapabilities 在本页有一个关于如何执行此操作的 java 示例 但是如何在 python 中执行此操作 这文档很穷
  • 使用 CNN 处理一维数据

    只是想知道是否有人这样做过 我有一个一维的数据集 但不确定它是否是正确的单词选择 与通常的 CNN 输入图像 二维 不同 我的数据只有一维 一个例子是 instance1 feature1 feature2 featureN instanc
  • Python ctypes 未在 Mac OS X 上加载动态库

    我有一个 C 库repeater so我可以通过以下方式从 Linux 中的 Python 加载 import numpy as np repeater np ctypeslib load library librepeater so 但是
  • 使用 GCC 的链接器错误,包括。用于 binutils 和 textinfo

    我每次在编译程序 配置和安装一些东西时都会收到此错误 例如binutils 文本信息等 usr local bin ld this linker was not configured to use sysroots collect2 err
  • 使用 Apple Pay 创建令牌,无需付款

    我有两个问题 有没有办法使用 Apple Pay 创建 STPToken 而无需付款 在我的 iOS 应用程序中 客户在注册时要么输入付款信息 要么决定使用 Apple Pay 当客户决定购买时 注册后的某个时间 他们的卡将自动扣款 我可以
  • Kdevelop 步骤和断点不起作用

    我需要使用步骤 单步执行 单步执行指令 和断点 但选项 跳过 跳过指令 等 在菜单 运行 中被禁用 当我在程序中放置断点时 程序不会在此断点处停止 我发现我必须关闭编译器和链接器的优化 但我不知道如何关闭 Kdevelop 4 4 1 中的
  • ASP.NET:视图状态和以编程方式添加用户控件

    当使用 LoadControl string path 以编程方式添加用户控件时 在用户控件的页面生命周期中 它何时使用其视图状态初始化其子控件 我问这个问题是因为我正在以编程方式加载的用户控件之一有一个 TextBox 控件 该控件未通过
  • 使用批处理文件命名驱动器

    我正在寻找一个命令来重命名我在 WinXP 中每次启动时映射的几个驱动器 我已经完成了映射部分 现在我有兴趣使用自定义名称以编程方式命名它们 这样我就可以保持它们的一致性 我放弃了 DOS 转而学习 PowerShell 最终的结果是这样的
  • Node.js“require”语句中的大括号(大括号)

    我试图理解下面两个 require 语句之间的区别 具体来说 其目的是什么 s 缠绕着ipcMain const electron require electron const ipcMain require electron 他们似乎都分
  • 如何在 Android 中缩放文本视图?

    谁能指导我在android中的多个视图上执行放大和缩小操作 我需要在图像 文本视图的触摸上执行放大和缩小操作 我的父级布局应该是什么 这是在触摸图像视图时缩放图像的代码 如何缩放文本视图 请帮我 These matrices will be
  • 所有 OLE 错误代码的列表

    是否有所有 OLE 错误代码的列表 None
  • 如何跟踪 WCF 序列化问题/异常

    我偶尔会遇到这样的问题 在 WCF 序列化期间 从我的 OperationContract 返回 DataContract 后 抛出应用程序异常 我收到的唯一 且意义不大 的消息是 System ServiceModel Communica
  • 发送至特定远程 IP 的第一个 UDP 消息丢失

    我正在开发一个基于 LAN 的解决方案 其中一个 服务器 必须控制多个 玩家 我选择的协议是 UDP 因为它很简单 我不需要连接 我的流量仅由时不时的短命令组成 我想使用混合广播消息进行同步 并使用单个目标消息进行玩家单独的命令 多播 TC
  • HTML 输入不允许数字

    现在我有一个像这样的输入字段
  • 在 SVN 中合并后我无法提交更改

    使用 TortoiseSVN 合并项目的两个分支后 我在提交更改时遇到了问题 详细信息如下 我做了一个合并分支到主干project我正在努力 Project包括主存储库和与主存储库联合的库 如下所示svn 外部 图书馆也有分支 作为子目录p
  • 如何将本地变量传递给远程“Invoke-Command”? [复制]

    这个问题在这里已经有答案了 我正在尝试使用以下命令检索位于远程服务器上的文件的哈希值Invoke Command 当我给出如下完整路径时 它工作得很好 Invoke Command ComputerName winserver Script
  • x86 上的堆栈对齐

    在 x86 32 位 平台上 当运行使用 gcc 4 8 1 编译的代码时 出现了一个神秘的总线错误 march pentium4 我将问题追溯到 SSE 指令 movdqa xmm5 0x50 esp esp 0xbfffedac mov
  • 如何在 Alamofire 中处理多个网络调用

    我需要在视图控制器中调用2个api来从服务器获取一些数据 我希望它们同时启动 但只有当它们都返回时才会触发下一步 不管成功还是失败 我可以想出两种解决方案 1 将它们链接在一起 调用api1 在api1的结果处理程序中调用api2 等待ap
  • 如何将函数应用于 Pandas 中的多列[重复]

    这个问题在这里已经有答案了 我有一堆需要在 Pandas 中清理的列 我写了一个函数来进行清理 我不确定如何将相同的函数应用于许多列 这是我正在尝试的 df Passengers Revenue Cost apply convert das
  • Passport.deserializeUser 为每个 HTTP 请求执行 DB(sequelize)命令

    我使用sequelize作为ORM和passport js passport local 进行身份验证 我注意到每个 HTTP 请求都会产生一个单独的数据库命令 我开始研究 deserializeUser 函数 加载单个页面时 这就是我得到