gpt4 book ai didi

node.js - nodejs : where session stores? 什么是connect-mongo?

转载 作者:可可西里 更新时间:2023-11-01 09:56:53 26 4
gpt4 key购买 nike

我正在为注册用户创建应用程序,使用 nodejs (0.8.15)、express (>3.0) 框架、socket.io 和 mongodb。

1) 每个人都知道只使用 socket.io 创建简单的聊天很容易,而无需 mongodb(或其他)。那么,在这种情况下,消息存储在哪里?在 session 中?

2) 第二个问题对我来说非常重要

我不明白:为什么 MongoStore 在那里用于 session ?我读到它是“连接的 session 中间件/连接的 SessionStorage”。据我所知,当用户离开网站时, session 会被破坏。那么为什么人们存储它并使用 require('connect-mongo') ??

var config = require('../config'),
express = require('express'),
MongoStore = require('connect-mongo'),
server = express.createServer();

server.configure(function() {
server.use(express.logger());
server.use(express.methodOverride());
server.use(express.static(config.staticPath));
server.use(express.bodyParser());
server.use(express.cookieParser());
server.use(express.session({
store: new MongoStore({
db: config.db
}),
secret: config.salt
}));
});

我刚找到的代码。似乎是用于 express 2.x

3) connect-mongoconnect-mongodb 库有什么区别? https://github.com/masylum/connect-mongodb

https://github.com/kcbanner/connect-mongo

4) 我必须为 cookie 和套接字制作 MongoStore 吗?

谢谢!

最佳答案

1) 无处可去?服务器接收消息,广播它并忘记它。谁说存储?服务器可以只是一个代理。

2) 因为 session 不必在用户离开网站后销毁。例如考虑一家商店。您去商店,将一些东西放入购物篮,然后关闭浏览器。 3 天后您返回,您仍然可以在购物篮中看到您的元素。这只能通过存储在数据库中的 session 来完成(至少以可靠的方式)。

这真的取决于您的需求。就我而言,我几乎从不使用基于数据库的 session 。我使用内存存储,如 Redis .

3) 谁知道呢?可能存在一些细微的差异,我看不出任何明显的差异。

4) 不。正如我所说:这取决于您的需求。如果您希望 session 仅在用户实际查看页面时才处于事件状态,那么您可以坚持使用任何内存存储。或者您可能根本不需要 session ,在这种情况下您根本不必使用它。

关于node.js - nodejs : where session stores? 什么是connect-mongo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13615582/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com