没有 "new" 就无法调用 "x"

"x" cannot be invoked without "new"

目前正在学习 Brad Traversy 的关于使用 node.js 编写交互式 WebApp 的教程,我 运行 遇到了一个问题,当我粘贴他的 github 时仍然存在顺便说一句。

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

我正在使用 connect-mongo 来存储会话数据,但是 require 不起作用,它抛出了这个错误:

TypeError: Class constructor MongoStore cannot be invoked without 'new'

谁能帮我做一个简短的解释和一段代码来解决这个问题,因为我在 Whosebug 上浏览了几个类似的问题,但并没有真正理解它。

干杯

教程可能很旧。库 API 可以更改,我建议您使用来自 https://www.npmjs.com/package/connect-mongo

的最新文档

此外,如果你能找到它,你可以安装本教程中使用的与 npm i connect-mongo@versionhere

相同版本的 connect-mongo

新用法:

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

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

而不是 new MongoStore(),看来您需要使用 MongoStore.create(options)