在ES6之前的版本中,我是这样导入connect-mongo
(会话)的:
var MongoStore = require("connect-mongo")(session);
但是如何在ES6中导入它呢?
import MongoStore from 'connect-mongo';
let monStore = MongoStore(session);
错误:
const Store = connect.Store || connect.session.Store;
^
TypeError: Cannot read property 'Store' of undefined
有什么想法吗?
7条答案
按热度按时间vd2z7a6w1#
使用非常类似的connect-mongodb-session,您可以:
两个软件包(
connect-mongodb-session
和connect-mongo
)都导出了一个匿名函数,该函数将express-session
模块作为参数。此函数返回一个 * 构造函数 *,并使用modules.export导出,因此它被视为默认导出,您可以使用import { default as NameForAnonymousFunction } from 'connect-mongo'
导入它。现在,我认为您应该遵循的一个好的学习实践是尝试阅读您正在安装的包的实际代码,至少是index.js。
由于
connect-mongo
使用mongodb@2.2.36
,而connect-mongodb-session
使用mongodb@3.0.11
,因此我在connect-mongo之前添加了一个过时的标记des4xlb02#
您可以尝试如下导入:
来自MDN文档
导入整个模块的内容。这会将myModule插入到当前作用域中,其中包含所有从“my-module.js”导出的绑定。
import * as myModule from "my-module";
More information can be found here.
rqqzpn5f3#
使用会话文件存储进行测试,方法如下:
对于connect-mongo,应该这样工作:
tquggr8v4#
我在NestJ/Express上工作时也遇到过同样的导入和初始化问题。这段代码与我的typescript代码库配合得很好。
7uzetpgm5#
下面的代码对我工作,我使用es7,与巴别塔.
gev0vcfq6#
对我有效
jm81lzqq7#
在这种情况下,服务器已经知道它以创建会话
请尝试以下代码: