在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有什么想法吗?
发布于 2016-08-20 18:16:09
您可以尝试像这样导入:
import * as connectMongo from 'connect-mongo';
const MongoStore = connectMongo(session);来自MDN文档
导入整个模块的内容。这会将myModule插入到当前作用域中,其中包含从"my-module.js“导出的所有绑定。
import * as myModule from "my-module";
发布于 2018-08-16 16:26:34
使用与之非常相似的connect-mongodb-session,您可以:
import { default as connectMongoDBSession} from 'connect-mongodb-session';
const MongoDBStore = connectMongoDBSession(session);
var store = new MongoDBStore({
uri: 'mongodb://localhost:27017/tmp',
collection: 'sessions'
});两个包(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之前添加了一个不推荐使用的标记
发布于 2019-05-20 03:16:22
使用session-file-store进行测试,如下所示:
import expressSession from 'express-session';
import sessionFileStore from 'session-file-store';
const FileStore = sessionFileStore(expressSession);对于connect-mongo,应该是这样工作的:
import session from 'express-session';
import connectMongo from 'connect-mongo';
const MongoStore = connectMongo(session);https://stackoverflow.com/questions/39052429
复制相似问题