在connect-mongodb模块中,我们可以将会话存储在MongoDB中,如下所示:

var connect = require('connect')
, Db = require('mongodb').Db
, Server = require('mongodb').Server
, server_config = new Server('localhost', 27017, {auto_reconnect: true, native_parser: true})
, db = new Db('test', server_config, {})
, mongoStore = require('connect-mongodb');

connect.createServer(
  connect.bodyParser(),
  connect.cookieParser(),
  connect.session({
  cookie: {maxAge: 60000 * 20} // 20 minutes
  , secret: 'foo'
  , store: new mongoStore({db: db})
})
);

在上面的示例中,我们必须使用本地mongodb的东西。 在我的nodejs项目中,我使用猫鼬2.4.1,那么应该如何重写该代码以使用猫鼬呢?

谢谢!

===============>>#1 票数:1

如果使用mongoose并且使用mongoose.connect,则可以在以下位置获得连接

mongoose.connection

因此,要配置会话存储,您可以使用此表单

var mongoose = require('mongoose'),
    mongoStore = require('connect-mongodb');
...
mongoose.connect(host,databaseName,port);
// mongoose.connect('mongodb://host:port/databaseName');
...

connect.session({
    secret: 'your secret key',
    cookie: { maxAge : 60*15*1000}, // 15 minutes, in milliseconds
    store: new mongoStore( { db : mongoose.connection.db })
})

===============>>#2 票数:0

如果您使用connect-mongo ,则通过如下方式传递您的猫鼬连接:

var express = require('express');
var MongoStore = require('connect-mongo')(express);

new MongoStore({ mongoose_connection: mongoose.connection })

一切都会如您所愿。

===============>>#3 票数:0

您没有理由这样做,只需使用具有connect-mongodb的会话即可,该会话已实现所有“会话存储” Express功能。 将Mongoose用于需要数据库存储的其他所有内容,但将会话保留为connect-mongodb。

这是一个执行此操作的真实示例: https : //github.com/alexyoung/nodepad

===============>>#4 票数:0

猫鼬应该以某种方式暴露连接。

  ask by Erik translate from so

未解决问题?本站智能推荐:

4回复

存储用户会话:node.js,express,mongoose-auth

我有一个关于身份验证和会话的新手node.js问题。 我已经通过express.js和mongoose-auth(mongodb)进行了身份验证: 我对所有这些员工没有太多了解。 用户通过身份验证后,除非重新启动服务器,否则它们将保持不变。 我想拥有更持久的身份验证状态,该如何
1回复

使用猫鼬的node.js的存储库模式

我是Node.js的新手,来自.net背景。 我想使用与c#.net一起使用的一些设计模式。 但是由于c#和JavaScript在面向对象性质上的差异,我遇到了一些麻烦。 特别是,我想实现存储库模式,但无法找到许多使用node进行操作的示例。 JavaScript和猫鼬的设置方式使我很难确定这一
7回复

node.js + express.js:使用mongodb / mongoose进行会话处理

现在我将会话数据存储在与connect(express)捆绑在一起的“内存存储”中。 但是我想/必须改变这个以进行生产。 该应用程序正在使用mongodb,我安装了mongoose来处理所有数据库通信。 例如,在初始化我的应用程序后连接到数据库: 我找到了connect-m
2回复

Node.js Express.js猫鼬:不保存会话

我正在尝试最近学习node.js。 我只是设置了Phonegap项目,而req.session是未定义的。 这是我的代码:app.js 这是我的数据库模型和功能。 login.js Index.ejs SignIn.js 这在我的控制台中显示为错误,并且re
1回复

Mongoose:嵌套Json的架构并存储它(Node.js)

我对js和mongoose很新,我最终得到了一个嵌套的JSON。 现在我尝试定义一个模式: 最后我尝试通过Mongoose将它存储到MongoDB中: 我的架构是错误的,我需要多个架构来正确存储它或者...... 别的错了。 但在我的数据库中,它只是像这样存储:
1回复

将MongoDB中的数据存储在变量中--mongoose和node.js

我想知道是否有人可以告诉我如何从mongodb获取字符串值并将其存储在变量中。 我运行它时得到类型值。 但是如何将它存储在此函数外的变量中?
1回复

使用Node.js和Angular 6在猫鼬中存储PDF文件

我必须在猫鼬集合中存储大量数据,并且它变得越来越大且难以处理。 我想将PDF文件保存在某个地方,然后将其链接到mongoose集合中,我不确定最好的解决方案。 由于大多数链接都是关于直接文件上传的,因此我使用pdfmake库,然后将其存储到集合中。 这是我目前的模特 annual
3回复

使用Node.js / Express和Mongoose在MongoDB中存储图像

目前我使用angular-file-upload处理图像上传,我只是将图像保存到服务器的文件系统并在HTML中引用它。 但是,我想尝试将图像直接存储在我为博客文章定义的Schema中的数据库中。 我想做到这一点,我可以只有一个存储图像本身的字段。 我以为我可能只是像我已经上传的那样上
1回复

查询后使用mongoose和node.js存储变量数据

我在app.js有代码 我想用2个变量渲染到index.jade分别list of song list of album 我使用这样的查询 因此,我应该怎么做才能将list of song list of album存储到variables并渲染到带有2个列表的index.j
2回复

MongoDB和node.js存储自定义JSON

我正在构建一个API,该API需要使用特定的“ json”结构进行响应,该结构看起来完全像其他API的响应。 我的问题是如何将其存储在MongoDB中,最后使用此自定义json文档重播。 我需要响应看起来像这样: