ES6 - 如何导入connect-mongo(会话)?

时间:2016-08-20 09:12:01

标签: node.js mongodb express mongoose

在ES6之前,这是我导入RealmConfiguration config = new RealmConfiguration.Builder(this) .name(Realm.DEFAULT_REALM_NAME) .migration(new Word()) .assetFile(this,"Default.realm") .schemaVersion(1) .build(); realm=realm.getInstance(config); (会话)的方式:

connect-mongo

但是如何在ES6中导入它?

var MongoStore = require("connect-mongo")(session);

错误:

import MongoStore from 'connect-mongo';
let monStore = MongoStore(session);

有什么想法吗?

4 个答案:

答案 0 :(得分:2)

您可以尝试像这样导入:

import * as connectMongo from 'connect-mongo';

const MongoStore = connectMongo(session);

来自MDN文档

  

导入整个模块的内容。这会将myModule插入当前范围,包含来自" my-module.js"的所有导出的绑定。

     

import * as myModule from "my-module";

More information can be found here.

答案 1 :(得分:1)

使用非常相似的 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-sessionconnect-mongo)都导出一个匿名函数,该函数以express-session模块作为参数。此函数返回一个构造器并与 modules.export 一起导出,因此它被视为默认导出,您可以使用{{1}进行导入}。

现在,我认为您应该遵循的一种良好的学习习惯是尝试阅读要安装的软件包的实际代码,至少是 index.js

由于import { default as NameForAnonymousFunction } from 'connect-mongo'使用connect-mongo并且mongodb@2.2.36使用connect-mongodb-session,因此我在 connect-mongo

答案 2 :(得分:0)

使用会话文件存储库通过以下方式进行测试:

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);

答案 3 :(得分:0)

以下代码对我有用,我使用的是 es7 和 babel。

import connectMongo from 'connect-mongo';

const MongoStore = connectMongo(session);