javascript - Nodejs 中的 session 管理

标签 javascript node.js session

我是 NodeJS 的初学者。刚开始一个简单的项目,我需要一个 session 管理概念。那么如何在 NodeJS 应用程序中管理 session 。

在我的项目中有两个文件:- app.js 和 routes.js。

那么我们在哪里添加 session 以及如何添加??

app.js 文件:-

var express = require('express'),
    app = express(),
    path = require('path');


app.set('views', path.join(__dirname , 'views'));
 
app.engine('html', require('hogan-express'));   
  
app.set('view engine', 'html');
  
app.use(express.static(path.join(__dirname,'public')));

require('./routes/routes.js')(express,app);

app.listen (3000 , function(){
    console.log("working on the Port 3000"); 
   
 });

和 routes.js 文件:-

module.exports = function(express, app){
    
    var router = express.Router();
    
    router.get('/', function(req , res , next){
       res.render('index',{title: 'Welcome'}); 
    });
    
  }

最佳答案

对于 session 管理,我们需要一个中间件“cookie-parser”。以前它是 express 的一部分,但在 express 4.0 之后,它是一个单独的模块。

因此,要访问我们需要在我们的项目中安装的 cookie 解析器:

npm install cookie-parser --save

然后将其添加到您的 app.js 文件中:

var cookieParser = require('cookie-parser');

 app.use(cookieParser()); 

然后我们需要 session 模块。所以首先通过以下方式安装 session 模块:

npm install express-session --save

然后启用 session 。我们在 app.js 文件中添加以下代码。

app.use(session({secret:config.sessionSecret, saveUninitialized : true, resave : true}));

然后来到routes.js文件:-

让我们假设有一个 session 变量 favColor。现在使用 session 设置颜色并进入另一个页面。代码看起来像:-

router.get('/setColor', function(req , res , next){
        req.session.favColor = 'Red';
        res.send('Setting favourite color ...!');
    });
    
    router.get('/getColor', function(req , res , next){
        res.send('Favourite Color : ' + (req.session.favColor == undefined?"NOT FOUND":req.session.favColor));
    });

这就是 session 管理的全部内容。我们还可以了解有关 session 的更多信息:- This Reference

关于javascript - Nodejs 中的 session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34838983/

相关文章:

ruby-on-rails - 模型测试中未定义局部变量或方法 'session'

javascript - express-session 不会设置 cookie connect.sid

php - 如何使用$_GET?

javascript - setInterval 更改函数参数

javascript - 如何在 react componentDidUpdate 方法中触发 redux 操作?

javascript - 我的 NodeJS MySQL 查询函数总是返回错误的结果

mysql - 使用 passport+express+mysql+sequelize 进行用户注册

asp.net-mvc - MVC 在 session 中保存 token

php - 如何将很长的字符串从一页传递到另一页?

javascript - 在 Three.js 中将 Material 包裹在立方体周围