【问题标题】:Unable to access connect-mongo's prototyped functions无法访问 connect-mongo 的原型函数
【发布时间】:2012-05-01 14:20:26
【问题描述】:

使用 expressjs 和 connect-mongo 我无法访问在 connect-mongo.js 文件 (https://github.com/kcbanner/connect-mongo/blob/master/lib/connect-mongo.js) 中设置的任何原型函数

在我的情况下,我试图访问 MongoStore obj 函数上的“get”并得到可爱的错误:

has no method 'get'

这是我正在使用的代码:

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

  ///... express code

  app.use(express.session({
    secret: conf.secret,
    maxAge: new Date(Date.now() + 3600000),
    store: new MongoStore(conf.db)
  }));

  //....more express code

  MongoStore.get(sessionId, function(err, result){
    console.log(result);
  });

您认为这里的问题是什么?我是否需要在另一个地方创建对象才能获取原型函数?

【问题讨论】:

  • 通过在 express.session 函数范围之外创建“MongoStore”obj 并传入完全创建的 obj 来修复它。我很快就会在这里正式发布这个答案。

标签: node.js mongodb connect express


【解决方案1】:

是的,您需要创建一个 MongoStore 实例,并在其上调用“get”。我会快速修复您的代码,如下所示:

  var MongoStore = require('connect-mongo');
  var sessionStore = new MongoStore(conf.db);  // <-- you missed this instantiation 
  ///... express code

  app.use(express.session({
    secret: conf.secret,
    maxAge: new Date(Date.now() + 3600000),
    store: sessionStore
  }));

  //....more express code

  sessionStore.get(sessionId, function(err, result){
    console.log(result);
  });

【讨论】:

    猜你喜欢
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    • 2016-05-16
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多