node.js - 无法访问 connect-mongo 的原型(prototype)函数

标签 node.js mongodb connect express

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

就我而言,我尝试访问 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);
  });

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

最佳答案

是的,您需要创建一个 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);
  });

关于node.js - 无法访问 connect-mongo 的原型(prototype)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9809328/

相关文章:

node.js - Promise.all 可以尽快处理结果,而不是等待所有的 Promise 完成

node.js - Express + Node : file downloaded through response. download() 与原始文件相比大小不同

python - pymongo 数据库的 insert() 和 insert_one() 方法都不能调用“Collection”对象

具有自定义 Http(s) 代理和 Connect.js 中间件的 Node.js 代理

sql - 如何在golang中安装包

mysql - 如何使用NodeJS在sequelize中编写具有多个where的子查询

node.js - 在 serverless.yml 中创建两个 dynamoDB 表

java - 如何使用 mongodb java-driver Projections.slice

mongodb - docker-compose无法为mongodb创建用户和密码

javascript - node.js connect-auth 应用程序?示例(用户注册/用户/ session 管理)