类型错误:MongoStore 不是构造函数

2023-12-26

我正在制作一个带有谷歌身份验证的网站。我尝试将会话存储在 mongodb 数据库中。但是当我将商店选项添加到我的快速会话中时,它不断给出以下错误。

TypeError: MongoStore is not a constructor
at Object.<anonymous> (C:\Users\HP\Desktop\Website\animetography\mongodb\app.js:42:12)
at Module._compile (internal/modules/cjs/loader.js:1137:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
at Module.load (internal/modules/cjs/loader.js:985:32)
at Function.Module._load (internal/modules/cjs/loader.js:878:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47

我的app.js代码如下:

const express = require('express');
const mongoose = require('mongoose');
const dotenv = require('dotenv');
const morgan = require('morgan');
const exphbs = require('express-handlebars');
const methodOverride = require('method-override');
const passport = require('passport');
const session = require('express-session');
const MongoStore = require('connect-mongo');(session);
const connectDB = require('./config/db');

//Load Config

dotenv.config({path: './config/config.env'});

//Passport Config
require('./config/passport')(passport);


connectDB();

const app = express();

//Logging
if(process.env.NODE_ENV === 'development') {
    app.use('morgan'('dev'));
}

//Handebars

app.engine('.hbs', exphbs({defaultLayout: 'main', extname: '.hbs'}));
app.set('view engine', '.hbs');

// Express Sessions

app.use(
  session({
    secret: 'keyboard cat',
    resave: false,
    saveUninitialized: false,
    store: new MongoStore({ mongooseConnection: mongoose.connection }),
  })
);

// Passport Middleware

app.use(passport.initialize());
app.use(passport.session());

//Static folder

app.use(express.static(path.join(__dirname, 'public')));


//ROUTES
app.use('/', require('./routes/index'));
app.use('/auth', require('./routes/auth'));

const port = process.env.PORT || 3000


app.listen(port,
    console.log(`Server Running in ${process.env.NODE_ENV} mode on port ${port}`)
    );

错误发生在:

store: new MongoStore({ mongooseConnection: mongoose.connection }),

有人可以告诉我我做错了什么吗?我不明白为什么会发生这个错误。


根据最新的文档:https://github.com/jdesboeufs/connect-mongo/commit/f18dae083aec690f4f9a8f81283c99cf994b0558 https://github.com/jdesboeufs/connect-mongo/commit/f18dae083aec690f4f9a8f81283c99cf994b0558

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

不应该再使用,但是

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

应该使用。

其余都是正确的,文档建议使用

app.use(session({secret: 'foo',
  store: MongoStore.create(options)
}));

选项必须包含 client、mongoUrl 或 clientpromise

app.use(session({
  store: MongoStore.create({ mongoUrl: 'mongodb://localhost/test-app' })
}));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类型错误:MongoStore 不是构造函数 的相关文章

  • 使用admin sdk在云函数中执行firestore集合组查询?

    firestore collectionGroup 方法在云函数中与 firebase admin sdk 一起使用时出现错误 是否可以在云函数中对 firestore 进行集合组查询 这是我尝试使用的 firestore 查询方法 htt
  • 如何在控制台上打印来自post请求的数据

    我正在尝试在控制台上打印发布数据 app js var express require express http require http var app express app set port process env PORT 7002
  • MongoDB,从数组中删除对象

    Doc id 5150a1199fac0e6910000002 name some name items id 23 name item name 23 id 24 name item name 24 有没有办法从数组中提取特定对象 IE
  • 未加载测试环境的节点 dotenv 文件

    我有两个 dotenv 文件 一个用于开发 另一个用于测试 const dotenv require dotenv if process env process env NODE ENV dotenv config path env pro
  • 如何在 Jenkins 服务器上运行 Jest 测试

    我正在尝试运行我的Jest https facebook github io jest 在 Jenkins 部署期间进行测试 如果我 ssh 进入服务器 我可以 sudo 进入 Jenkins 用户并从工作区成功运行测试 但是 当我尝试从
  • Angular2 + Laravel 与实时和 WebSockets

    我构建了一个应用程序 并计划与 Angular 2 和 laravel 进行实时战斗 例如 你按下 攻击 按钮 你的对手就会实时看到他的生命在下降 我的应用程序构建有 前端 角2 Backend PHP Laravel 5 2 现在我正在寻
  • 如何使用 Web 套接字和 Angular CLI 设置代理

    我有一个使用 Angular CLI 构建的简单 Web 应用程序 我希望它使用网络套接字与后端通信 我已经编写了后端 并使用一个简单的 index html 页面进行了测试 服务器可以在套接字上发送和接收该页面 在我的 angular c
  • 节点:使用 Nodemailer 的直通流

    我正在使用officegen 生成一个Word 文档 然后计划使用Nodemailer 和Sendgrid 将其附加到电子邮件中 Officegen 输出一个流 但我更愿意将其直接传递到附件 而不是在本地保存 Word 文档然后附加它 Ge
  • 使用 Spring Data MongoDB 查询纯 BSON

    是否可以在 Spring Data MongoDB 中查询纯 JSON BSON 数据 而无需将数据转换为实际的模型实现 我能找到的只是 MongoOperation 的
  • 语法错误:elasticdump 中的exports.runInThisContext (vm.js:53:16) 处出现意外标记 {

    我试图使用elasticdump 将elasticsearch 数据从一台服务器移动到另一台服务器 当我给予 elasticdump input http 192 168 0 122 9200 my index output http lo
  • Mongodb更新很多

    我正在使用express js 和 npm 模块 mongodb 进行开发 并以 mongodb 作为数据库 我有两个集合 即 用户 和 活动 一个用户可能有数千个活动 首先 我将用户的 id 姓名和图片 url 存储到 关系的活动文件 请
  • MongoDB自增ID

    MongodB 中自动生成的 ID 的大小为12 Bytes大整数的大小是8 bytes 我在 4 台运行 Ubuntu Server 的机器上有一个 mongodb 集群 但我现在只是在测试 插入只能通过一台服务器 即 Nodejs 服务
  • express 或express-generator:我需要两者吗?

    只是探索 Node js 并遇到了 Express 在 npm 存储库站点上https www npmjs com package express https www npmjs com package express它明确指出安装是 np
  • socket.io 作为客户端

    有什么方法可以将socketio作为客户端运行 不是浏览器 而是nodejs脚本 我需要将数据从服务器广播到一些客户端 浏览器 和另一台linux机器 仅运行nodejs来获取变量 没有浏览器 欢迎任何想法 Regards github上有
  • ExpressJS - DELETE 请求后 res.redirect

    我一直在寻找如何执行此操作 我正在尝试在发出删除请求后重定向 这是我正在使用的代码没有重定向 exports remove function req res var postId req params id Post remove id p
  • 护照:登录和帐户注册的不同重定向

    我在我的应用程序中使用护照模块 github身份验证 我想根据操作进行重定向 我检查这是否只是正常登录或者用户是否第一次登录 passport use new GitHubStrategy clientID conf github app
  • 使用 AWS CDK 为 lambda 指定自定义角色

    我意识到它很新 但我没有看到任何语言的任何示例 说明如何为使用 AWS CDK 创建的 lambda 指定角色 我正在尝试这样做 const cdk require aws cdk cdk const lambda require aws
  • 为 Node.js 客户端应用程序保留 Firebase 用户

    我正在使用 Firebase 构建 Node js 命令行界面 CLI 用于与后端进行身份验证 我想避免让用户每次运行命令时都输入密码 相反 我想实现一个 登录 流程 将凭证保留到文件系统 该凭证可用于后续的无密码身份验证 直到用户 注销
  • 带有 npm 启动脚本的 Nodejs 应用程序

    我对nodejs很陌生 在我的docker化环境中 我想为nodejs应用程序提供appdynamics支持 这要求每个应用程序都要求将以下内容作为其应用程序的第一行 require appdynamics profile controll
  • 我想在“npm install”上下载一些资源,大概使用“预发布”脚本

    具体来说 我想在运行 npm install 时下载 angular min js 从我读到的here https npmjs org doc scripts html做这些事情的地方是在预发布脚本 它还提到我不需要依赖在系统上安装 wge

随机推荐

  • @IdClass JPA 注解

    这是我的一个实体的复合主键 public class GroupMembershipPK implements Serializable private static final long serialVersionUID 78164338
  • 切片如何包含自身?

    我正在尝试使用 The Go 编程语言 来学习 Golang 并且我已经到达了关于切片的部分 它们在数组和切片之间进行比较 因为两个数组可以与 其中两片不能 正文如下 operator for arrays of strings it ma
  • Mongo 上按日期字符串(升序)排序

    我有一个数据库 其中的日期列格式为 dd mm yyyy 我想按日期升序排序 cursor collection gt find filter gt sort array date gt 1 tripID gt 1 日期是一个字符串 我也在
  • 立即获取整数中最左边活动位的索引[重复]

    这个问题在这里已经有答案了 如何从左到右而不是从右到左扫描整数 二进制 我知道我可以从左边开始尝试每一位 然后记录最左边的位 但是有没有更快的方法 是否有一个内置函数可以立即找到整数中最左边的有效位 即 1 我知道从右到左 我可以做类似的事
  • 如何在 ASP.NET Core 3.0 Preview 5 中将声明映射选项传递给 IdentityServerJwt?

    灵感来自关于自定义声明的文章 https korzh com blogs net tricks aspnet identity store user data in claims 我已将租户 ID 自定义声明添加到我的身份服务器登录过程中
  • 如何在Android Studio中调试?

    我怎么能够 设置断点 在断点处停止 发布 但保持调试模式 我所说的释放是指不要进入下一行 跳转到下一个断点 或者只是等到断点被击中 我没有时间也没有意愿深入研究 SDK 类 我只是想在完成几行之后就退出 到目前为止 我唯一能做的就是终止调试
  • 如何将 ALAsset 中的视频显示到 UICollectionview ios

    我尝试使用下面的代码从照片库中获取所有视频ALAsset 现在 我想将所有视频显示到UICollectionview但它似乎没有显示任何东西 请给我一些建议 提前致谢 ViewDidLoad 从照片库获取所有视频 allVideos NSM
  • 跨源资源共享(CORS)——我在这里遗漏了什么吗?

    我正在读关于CORS https developer mozilla org en HTTP access control我认为实施既简单又有效 然而 除非我遗漏了什么 否则我认为规范中遗漏了很大一部分 据我了解 外国站点根据请求的来源 以
  • 用于数据分析目的的特定 postgresql 服务器配置

    如果您使用 postgresql 数据库 是否有关于使用 postgresql conf 文件调整服务器性能的任何提示具体来说用于数据科学部门和数据分析目的 或者性能调整本身与目的无关 并且您将用它做什么没有真正的区别 因为 这都是关于提取
  • 制作因子变量的频率直方图

    我对 R 很陌生 所以我对这样一个基本问题表示歉意 我花了一个小时谷歌搜索这个问题 但找不到解决方案 假设我的数据集中有一些关于常见宠物类型的分类数据 我将其作为 R 中的字符向量输入 其中包含不同类型动物的名称 我是这样创建的 anima
  • 无法在 GitLab 上执行合并请求

    将 GitLab 从 6 2 更新到 7 1 后 我无法执行合并请求 它告诉我没有任何东西可以合并 但当然有 系统信息 System information System Current User git Using RVM no Ruby
  • 更改选项卡时添加动画

    你好 我有一个包含两个子活动的 TabHost 活动 为子活动添加 左 右 动画的最佳解决方案是什么 此致 Hi最好的解决方案是向布局添加动画假设你有两个选项卡 tabs TabHost this findViewById R id tab
  • 在 postgresql 表中存储带有特殊字符(例如引号或反斜杠)的字符串

    我有一个有价值的字符串 MAX DATE QUERY SELECT iso timestamp MAX time stamp AS MAXTIME FROM observation WHERE offering id HOBART 但是在插
  • UIWebView 上 mediaPlaybackAllowsAirPlay 属性的用途

    UIWebView类参考描述了mediaPlaybackAllowsAirPlay如下 一个布尔值 用于确定是否允许从此视图进行隔空播放 当 mediaPlaybackAllowsAirPlay 设置为 YES 时 如果在我的 iPad 上
  • 放置亚马逊横幅 |角V4

    我将亚马逊横幅放在 Angular Material 2 卡内 但问题是它没有渲染 它显示空 div 可能是什么原因 下面是显示我如何做到这一点的代码
  • 通过 Google Apps 脚本更改文档的权限

    我正在寻找示例脚本 该脚本根据传递给脚本的电子邮件地址和 DocumentID 重置外部电子表格的默认权限 我打算创建一个脚本 可以解析电子邮件中的信息以获取DocumentID和电子邮件 执行权限从默认更改为任何有链接的人 然后通过电子邮
  • 使用 Rx 消除按钮点击的抖动

    我正在尝试制作一个简单的 按钮去抖动器 它将计算过滤的点击次数并通过 TextView 显示它 我想过滤快速 垃圾点击 忽略时间间隔小于 300 毫秒的点击 我做了研究并偶然发现Rx太棒了debounce 理论上应该可以做我想要的事情 或者
  • 如何使用javascript将大图像转换为十六进制?

    如果我尝试将图像转换为十六进制 无论我使用哪个函数 我都会收到此错误消息 该图像的大小为 7 MB 19812 毫秒 清除 1401 2 1455 0 gt 1401 2 1455 0 MB 9 9 0 ms 自上次 GC 以来 8 3 m
  • 有没有办法在 Folium 中绘制许多标记?

    我正在尝试使用 Folium 从 pandas 数据框中读取地理信息 我的代码是这样的 import folium from folium import plugins import pandas as pd operations on d
  • 类型错误:MongoStore 不是构造函数

    我正在制作一个带有谷歌身份验证的网站 我尝试将会话存储在 mongodb 数据库中 但是当我将商店选项添加到我的快速会话中时 它不断给出以下错误 TypeError MongoStore is not a constructor at Ob