当前位置: 首页 > 面试题库 >

处理并保留node.js / express会话

梅跃
2023-03-14
问题内容

我当前正在使用一个Web应用程序,每次fs.mkdir都调用此Web应用程序,请删除所有当前的Express会话,因此我需要一种方法来保留所有这些会话。我试图用connect-
mongodb和connect-
redis保留所有这些会话,但是都无效,nodemon总是说req.session是未定义的。我不知道该怎么做才能保留所有会话。

我需要一种方法来保留所有会话,执行时不要丢失它们fs.mkdir,并为其提供教程,因为我还没有找到任何好的完整教程,任何人都可以使用!在Stackoverflow中,我正在阅读所有与此相关的内容,但是任何方法都可以!请帮忙!


问题答案:

fs.mkdir您删除会话后,听起来很异国。(我发现了您的其他问题)

但是回到问题,这里有一些代码片段,您可以使用会话(redis)。

var express = require('express')
  , fs = require('fs')
  , http = require('http')
  , RedisStore = require('connect-redis')(express)
  , sessionStore = new RedisStore()
  , app = express()
  ;

app.configure(function(){
  app.set('port', 3000);
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(express.cookieParser('secret'));
  app.use(express.session({
    store: sessionStore
  }));
  app.use(express.static(__dirname + '/public'));
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.get( '/', function(req, res){
  res.setHeader("Content-Type", "text/html");
  console.log( req.session );
  console.log( '------------------------' );
  res.end( 'root' );
});

app.get( '/dir/:id', function(req, res){
  console.log( req.session );
  console.log( '------------------------' );

  fs.mkdir( req.params.id );
  if ( req.session.dirs === undefined )
    req.session.dirs = [];
  req.session.dirs.push( req.params.id );

  console.log( req.session );
  console.log( '------------------------' );

  res.setHeader("Content-Type", "text/html");
  res.end( 'dir' );
});


server = http.createServer(app).listen(3000);

您应该阅读express的文档,并浏览express
的示例



 类似资料:
  • 问题内容: 我的Express应用程序中有一个受限制的区域“ / dashboard”。我使用一个非常小的函数来限制访问: 问题是当我通过调用注销用户时… …会话被终止,但是 当我在浏览器中单击“后退”按钮时,我从浏览器的缓存中获取了受限制的页面。 这意味着’/ dashboard’上没有GET,也没有用户登录验证。 我尝试在meta(玉模板)中使用no-cache,但仍然无法正常工作。 任何人?

  • 问题内容: 我研究了如何通过此堆栈交换在节点中进行错误处理,但是我不确定身份验证失败时护照在做什么。我有以下LocalStrategy: 在看到“错误>某些错误”控制台打印输出后,什么都没有发生。我认为它应该在带有错误参数的下一条路径上继续,但似乎没有这样做。这是怎么回事? 问题答案: 策略实施与验证请求和处理成功/失败一起使用。 假设您正在使用此路由(向其传递了电子邮件地址和密码): 这将调用该

  • 问题内容: 我在会话方面遇到问题,有时我 刚刚 设置的会话变量在下一页请求中未定义。为了正确设置变量,我通常必须再次执行该流程。 我可以确认我没有尝试将会话变量设置为undefined。他们有合法的价值。 在我的应用中,用户从/ twitter / connect /移至/ twitter / callback /。前者从Twitter检索一些oauth数据,后者将用户登录到Twitter。 /

  • 尝试使用一个识别符,例如使用嵌入式MySQL数据类型或函数名作为表名或列名,例如TIMESTAMP或GROUP,会造成一个常见问题。允许你这样操作(例如,ABS可以作为一个列名)。但是,默认情况下,在数调用中在函数名和后面的‘(’字符之间不允许有空格。该要求使函数调用与列名引用不同。 该行为的不利结果是在某些上下文中省略一个空格会使识别符解释为函数名。例如,该语句合法: mysql> CREATE

  • 问题内容: 我有一个非常普通的Express应用程序- 简单的服务器逻辑,视图,许多客户端JS。我必须执行许多AJAX请求。其中一些需要通过HTTPS协议保护(某些不需要)。 因此,我的服务器应同时使用HTTP和HTTPS。它也应该在本地计算机(正常运行nodemon)和Heroku上都可以工作。 据我了解,Heroku为您提供了一个您可以监听的端口(process.env.PORT),并通过代理

  • 我们正在构建一个具有Node.js服务器和Express的架构体系。 在服务器中,发生的情况如下所示: 服务器接受来自客户端的传入HTTP请求 服务器生成两个文件(此操作可能“相对较长”,也就是0.1秒左右) 服务器将生成的文件(每个文件约20-200 KB)上载到外部CDN 服务器响应客户机,这包括CDN上文件的URI 目前,服务器正在为每个请求按顺序执行此操作,并且效果非常好(Node/Exp