错误:无法初始化客户端 | mongo-connect 快速会话

2024-03-17

我在尝试在 mongodb 上保存会话时遇到错误。这是我的代码..

const express = require("express");
const session = require("express-session");
const MongoStore = require("connect-mongo").default;
const app = express();

let sessionOptions = session({
  secret: "JavaScript is cool",
  store: MongoStore.create({ client: require("./db") }),
  resave: false,
  saveUninitialized: false,
  cookie: { maxAge: 1000 * 60 * 60 * 24, httpOnly: true },
});

app.use(sessionOptions);
const router = require("./router");
app.use(express.urlencoded({ extended: false }));
app.use(express.json());
app.use(express.static("public"));
app.set("views", "views");
app.set("view engine", "ejs");

app.use("/", router);

module.exports = app;

和 db.js

const dotenv = require("dotenv");
dotenv.config();
const mongodb = require("mongodb");

mongodb.connect(
  process.env.CONNECTIONSTRING,
  { useNewUrlParser: true, useUnifiedTopology: true },
  (err, client) => {
    module.exports = client;
    const app = require("./app");
    app.listen(process.env.PORT);
  }
);

错误就在这里..

Assertion failed: You must provide either mongoUr|clientPromise in options
/home/irfan/Desktop/Brad_Sciff/Complex_App/node_modules/connect-mongo/build/main/lib/MongoStore.js:121
            throw new Error('Cannot init client');
            ^

    Error: Cannot init client
        at new MongoStore (/home/irfan/Desktop/Brad_Sciff/Complex_App/node_modules/connect-mongo/build/main/lib/MongoStore.js:121:19)
        at Function.create (/home/irfan/Desktop/Brad_Sciff/Complex_App/node_modules/connect-mongo/build/main/lib/MongoStore.js:137:16)
        at Object.<anonymous> (/home/irfan/Desktop/Brad_Sciff/Complex_App/app.js:9:21)
        at Module._compile (internal/modules/cjs/loader.js:778:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
        at Module.load (internal/modules/cjs/loader.js:653:32)
        at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
        at Function.Module._load (internal/modules/cjs/loader.js:585:3)
        at Module.require (internal/modules/cjs/loader.js:692:17)
        at require (internal/modules/cjs/helpers.js:25:18)

我试图改变const MongoStore = require("connect-mongo").default to const MongoStore = require("connect-mongo")(会话)

但错误显示..

const MongoStore = require("connect-mongo")(session);
                                           ^

TypeError: require(...) is not a function
    at Object.<anonymous> (/home/irfan/Desktop/Brad_Sciff/Complex_App/app.js:4:44)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at mongodb.connect (/home/irfan/Desktop/Brad_Sciff/Complex_App/db.js:10:17)
    at /home/irfan/Desktop/Brad_Sciff/Complex_App/node_modules/mongodb/lib/utils.js:693:5

使用 Connect-mongo 4.2、express-session 1.17.1 express 4.17.1 mongodb 3.6.4

不知道我错过了什么。

请帮忙。

提前致谢。

Irfan.


所以看起来像connect-mongo最近已更新。我今天也遇到了这个问题,这是我解决的方法。

以前是怎样的:

const session = require('express-session');
const MongoStore = require('connect-mongo')(session);

app.use(
  session({
    ...options
    store: new MongoStore({ mongooseConnection: mongoose.connection  }),
  })
);

现在怎么样:

const session = require('express-session');
const MongoStore = require('connect-mongo').default;

app.use(
  session({
    store: MongoStore.create({ mongoUrl: process.env.MONGO_URI }),
    ...options
  })
);

尝试将您的连接字符串传递到mongoURL代替client看看是否有帮助。

您可以阅读有关 connect-mongo 的更多信息在他们的文档中 https://www.npmjs.com/package/connect-mongo.

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

错误:无法初始化客户端 | mongo-connect 快速会话 的相关文章

  • MongoDB C# 驱动程序“找不到光标”

    我有一个相当密集的操作MongoCursor循环运行几个小时 在通过 c 驱动程序运行的 vb net 应用程序上 我不太确定是什么导致了它 但一段时间后我遇到了异常 Cursor not found 这可能是由于游标超时造成的 有什么办法
  • MongoDB 如何使用 $date 运算符进行查询?

    编辑 上下文 我正在使用 Talend ETL 工具 并在查询中使用 ISODate 或 Date 或 new Date 如下所示失败并出现错误 因此我需要解决方法 dt ISODate 2014 01 01 dt Date 2014 01
  • mocha——手表和猫鼬模型

    如果我让 mocha 监视更改 每次保存文件时 mongoose 都会抛出以下错误 OverwriteModelError 无法覆盖Client模型一旦编译 我知道猫鼬不允许两次定义模型 但我不知道如何让它与mocha watch clie
  • 如何中止 MongoDB shell 中正在运行的查询?

    我不敢相信我必须问这个问题 但是如何停止我刚刚运行的查询 该查询现在正在运行 并且显然需要很长时间才能在 Mongo shell 中完成 Control C似乎会使外壳崩溃 并吐出大量错误 中建议的愚蠢解决方案这个帖子 https stac
  • 如何使用 node.js / mongodb 在 HTML 中显示任意、无模式数据

    我使用 mongodb 将应用程序错误日志存储为 json 文档 我希望能够将错误日志格式化为 HTML 而不是将纯 json 返回到浏览器 日志是完全无模式的 它们可以随时更改 因此尝试执行此操作 在 Jade 中 是没有用的 var i
  • 在 Windows 7 - 64 位上安装 Mongodb

    我是 mongodb 的新手 不知道如何安装它 因为我找不到视频或任何有用的资源来实现相同的目的 请帮助我在 Windows 7 上安装 mongodb 并提供确切的步骤 我尝试从该网站下载最新版本的 mongodb 但不成功 提前致谢 R
  • MongoDB 在仅返回 _id 时使用 COLLSCAN

    我想返回 MongoDB 集合中的所有 ID 我使用了以下代码 db coll find id 1 但MongoDB扫描整个集合而不是从默认读取信息index id 1 从日志中 find collection filter project
  • CoreMongooseArray 到普通数组

    我正在从一个架构中选出 2 个元素 并希望在另一个架构中进行更新 为此 我使用切片方法将数组中的前 2 个元素列入候选名单 但我越来越 CoreMongooseArray 元素1 元素2 而不是 元素1 元素2 如何删除 CoreMongo
  • 加密 mongodb 中的密码字段

    我有以下代码 它插入userName and password进入数据库 但密码以纯文本格式存储 我的意思是 当我查看数据库时 我可以看到插入的密码 我想存储password in encrypted format MongoClient
  • Spring Data MongoDB 和批量更新

    我正在使用 Spring Data MongoDB 并且想要执行批量更新 就像此处描述的那样 http docs mongodb org manual reference method Bulk find update Bulk find
  • Angular js 服务器端过滤器和分页

    我有几个输入字段 我们可以使用带有搜索名称的输入字段作为示例 当有人在该字段中输入内容时 我希望能够过滤对象的结果 但我想做过滤器服务器端而不是客户端 我有一个包含大量记录的数据库 因此我不想返回所有记录并在客户端进行过滤 这确实会减慢速度
  • Mongodb $push 嵌套数组

    我想向我的嵌套数组添加新数据 我的文档是 username erkin email email protected cdn cgi l email protection password b playlists id 58 name asd
  • 如何在 mongodb 聚合管道中使用 Javascript 对象?

    我有一个 JS 对象norm我想在 mongo 聚合管道中使用它 如下所示 var norm 1 1 2 1 16 3 1 413 4 1 622 5 1 6 6 1 753 7 3 001 8 2 818 9 3 291 10 2 824
  • Mongodb 数据建模/投票更新(向上和向下)

    Mongo 中有一个关于投票数据模型 更新查询的示例 http www mongodb org display DOCS MongoDB Data Modeling and Rails MongoDBDataModelingandRails
  • Java/MongoDB 按日期查询

    我将一个值作为 java util Date 存储在我的集合中 但是当我查询以获取两个特定日期之间的值时 我最终得到的值超出了范围 这是我的代码 插入 BasicDBObject object new BasicDBObject objec
  • Mongodb 聚合中对数组元素求和

    我有以下收藏c每个文档内的数组 id 1 k 2 2 type dog c parentId 1 p 2 2 parentId 1 p 1 4 id 2 k 4 3 type cat c parentId 2 p 5 2 parentId
  • 将日期差转换为年数以计算 MongoDB 中的年龄

    我正在使用以下方法来计算时间戳差异中的年龄 db getCollection person aggregate project item 1 DOB personal DOB dateDifference subtract new Date
  • MongoDB 3.0 Windows 服务启动:发生系统错误 2

    我已经下载了 MongoDB Windows msi 安装并成功运行 mongod exe 和 mongo exe 命令文件执行工作正常 安装手册展示了如何创建配置文件 然后使用命令创建Windows Server sc exe creat
  • Express中间件修改请求

    我目前有一个正在运行的服务器 前端使用nodejs mongo express 和 W2UI W2ui 请求来自包含所有参数的记录数组 记录 名称 foo 我想编写一个中间件 在请求到达路由之前对其进行编辑和更改 您可以创建自己的中间件来处
  • MongoDB:javascript执行失败:无法在 src/mongo/shell/collection.js 保存 DBQuery 对象

    在 MongoDb 中 当我尝试修改集合中的现有文档时 它会生成以下异常 javascript execution failed can t save a DBQuery object at src mongo shell collecti

随机推荐

  • npm:术语“npm”不被识别为 cmdlet、函数、脚本文件或可操作程序的名称

    当我检查节点 v时 一切正常并打印出来 但 npm 显示此错误 我怎样才能解决这个问题 请帮我 我搜索了很多时间并找到了解决方案 一旦安装nodejs gt 请重新启动笔记本电脑 然后设置路径 系统属性 gt 环境设置 gt C Progr
  • Git LFS 文件未推送到远程存储库

    我正在尝试使用 git LFS 将 xlsx 文件推送到远程存储库 我尝试了两种方法 使用 Sourcetree 点击菜单和使用终端服务器 两者都会产生相同的错误消息 我在 Bitbucket 中设置了一个远程存储库并设置了允许 LFS 选
  • WPF C# 类、文本框和参考,Easy(?)“当前上下文中不存在”

    我正在拔头发 我创建了一个类 employee cs 我最初在 Window1 xaml cs 上的 公共部分类 Window1 Window 中开发了这个类 当将其移动到单独的类时 我无法再引用文本框 组合框等 我该怎么办 给出的错误是
  • Python 交互式 Shell - 带有 print 的 SyntaxError [重复]

    这个问题在这里已经有答案了 我是Python新手 我在 Windows 2003 虚拟机上安装了 Python 推出Python Shell 输入以下代码 print Hello World 它立即向我吐出以下内容 语法错误 语法无效 以下
  • 哈希表 v 自平衡搜索树

    我很想知道使用自平衡树技术来存储项目比使用哈希表更重要的推理是什么 我发现哈希表无法维护插入顺序 但我始终可以在顶部使用链表来存储插入顺序序列 我发现对于少量的值 哈希函数会增加成本 但我总是可以将哈希函数与密钥一起保存以加快查找速度 我知
  • 检测何时将文本输入到文本区域并相应地更改它

    我有一个textarea用户可以在其中输入或粘贴其他人的电子邮件地址 并在按 提交 按钮后向他们发送邀请 每封电子邮件必须用逗号分隔 并且在提交表单之前有效 验证由jQuery 验证插件 http jqueryvalidation org
  • “在‘​​vue’中找不到导出‘默认’(作为‘Vue’导入)

    我是 VueJs 的初学者 这是我的第一个应用程序 import BootstrapVue from bootstrap vue import createApp from vue import App from App vue const
  • “函数”对象没有属性“tk”是什么意思?

    我目前正在开发一个程序 可以让您注册一个帐户 然后通过将详细信息写入 txt 文档并再次读取它们来再次登录 一切都工作正常 直到我添加以下内容 def login fh open usernamepassword txt r lines f
  • 在 Swift 中过滤具有多个条件和类型的对象数组

    我正在尝试在我的应用程序中进行一些复杂的过滤 但我不知道下一步该做什么 我的数据由一个字典数组组成 其中每个字典中的值可以是String Int or String let person1 String Any first name Joh
  • Onload 使输入大小适合文本长度

    我试图让 jQuery 测试 onLoad 输入框中文本的长度 并更改输入框的大小以适应 这是迄今为止我的代码尝试 emailSubject attr size this val length 我收到以下错误 this val 不是函数 我
  • Zend_Validate_Float 语言环境不适用于 hi_IN 语言环境

    在使用 hi IN 进行数字验证时 我面临以下问题 其中 Zend Locale Format isFloat 对于非单个数字和任何语言环境都可以正常工作 但不适用于单位数字和区域设置 hi IN 源代码 测试用例 foreach arra
  • 有没有办法识别 c/c++ 库的版本?

    例如 如何获取 usr lib libz a的版本 如果可以获取其他有用的信息 例如编译器 架构等 那就太好了 我想知道这一点的原因是 当我编译程序并与特定版本的 libz 链接时 gcc 总是说它忽略了我在命令行中提供的 libz gcc
  • 覆盖 require.js 中的 setTimeout

    我们在项目中使用 require js 我们需要重写设置超时时间在第 705 行 这是我们需要的代码以某种方式忽略 省略这个 setTimeout 根本 我的意思是运行它 问题是 如果我在更改版本时显式地在开源代码中更改它 代码将丢失 我应
  • 将数组传递给存储过程

    我必须将数组和字符串传递给存储过程并返回数据表 C side public DataTable fetchRequested string empID string account string refNo string orgID str
  • 可以在 Coq 的蕴涵中使用 destruct 吗?

    destruct可以用来分割and or在柯克 不过好像也可以用暗示 例如我想证明 P gt P Lemma test P P gt P Proof unfold not intro pffpf apply pffpf intro pff
  • 如何自动填写XFA(PDF)表格?

    我正在寻找一个免费选项来填写 XFA PDF 表单 我知道 iText 是一个选择 但它们的商业价格对我来说太贵了 我更喜欢完全开源的东西 有 PDFBox 但它似乎不允许将数据插入 XFA 表单 或者至少很少解释如何插入 我只需要使用文本
  • Python字典查找性能,get vs in

    这并不是过早的优化 我的用例在内部循环的最里面对字典的权利进行了双重检查 一直运行 而且 它在智力上也令人厌烦 见结果 这些方法中哪一种更快 mydict hello yes goodbye no key hello A if key in
  • 对 BigIntegers 列表求和

    我已经查看了所有内容 但无法弄清楚这一点 如何对 BigIntegers 列表求和 Using System Numerics Using System Linq List
  • 具有多个组件的开盖

    我正在尝试将三个单元测试项目 三个不同的 dll 合并到一份 OpenCover 报告中 是否可以 我尝试查看过滤器 但在 OpenCover Wiki 站点中没有看到足够的详细信息 示例 有人可以告诉我可以从哪里开始吗 多谢 对的 这是可
  • 错误:无法初始化客户端 | mongo-connect 快速会话

    我在尝试在 mongodb 上保存会话时遇到错误 这是我的代码 const express require express const session require express session const MongoStore req