Nodejs nodeclub百度云部署成功,session采用百度云的redis服务

Nodejs nodeclub百度云部署成功,session采用百度云的redis服务

session设置代码:session换用redis代替mongodb

   var session = require('express-session');  var redis = require('redis');
  var RedisStore = require('connect-redis')(session);
  var client = redis.createClient(80, 'redis.duapp.com', {"no_ready_check":true});
 client.on("error", function (err) {
 console.log("Error " + err);
});
 / /*数据库连接信息host,port,user,pwd,dbname(可查询数据库详情页)*/
 var username = 'UrtgxzMPVigNEyOQF7yzg7C9';          // 用户名(API KEY)
var password = '1e0jDqkZ7fUwNGFD5LzwPY4YAQURFGYM';  // 密码(Secret KEY)
var db_host = 'redis.duapp.com';   
var db_port = 80;
var db_name = 'QTQTzJQhMKcabjpSTIEX';               // 数据库名
console.log(db_host);
console.log(db_port);
var options = {"no_ready_check":true};

// 建立连接后,在进行集合操作前,需要先进行auth验证

client.auth(username + '-' + password + '-' + db_name);
 app.use(session({
secret: config.session_secret,
key: 'sid',
store: new RedisStore({
 client:client
}),
resave: true,
saveUninitialized: true
}

3 回复

Nodejs nodeclub百度云部署成功,session采用百度云的redis服务

在本帖中,我们将介绍如何将Node.js项目nodeclub部署到百度云,并使用百度云的Redis服务来管理Session。

环境配置

首先,确保你已经在百度云上创建了一个Redis实例。你需要获取到Redis实例的访问信息,包括主机名、端口、用户名和密码等。

session设置代码

接下来,我们需要修改nodeclub项目的session配置,使用Redis替代原有的MongoDB作为Session存储。

var express = require('express');
var session = require('express-session');
var redis = require('redis');
var RedisStore = require('connect-redis')(session);

// Redis连接信息
var username = 'UrtgxzMPVigNEyOQF7yzg7C9';          // 用户名(API KEY)
var password = '1e0jDqkZ7fUwNGFD5LzwPY4YAQURFGYM';  // 密码(Secret KEY)
var db_host = 'redis.duapp.com';                   // Redis主机名
var db_port = 80;                                  // Redis端口
var options = {"no_ready_check":true};             // 其他选项

// 创建Redis客户端
var client = redis.createClient(db_port, db_host, options);
client.on("error", function (err) {
    console.log("Error " + err);
});

// 验证Redis连接
client.auth(username + '-' + password, function(err) {
    if (err) throw err;
    console.log('Connected to Redis successfully.');
});

// Express应用配置
var app = express();

app.use(session({
    secret: 'your-secret-key', // 你的密钥
    key: 'sid',                // session名称
    store: new RedisStore({    // 使用RedisStore
        client: client         // Redis客户端
    }),
    resave: true,              // 是否重新保存会话
    saveUninitialized: true     // 是否初始化会话
}));

// 其他中间件和路由配置...

代码说明

  1. 引入依赖

    • express: Web框架。
    • express-session: 用于管理Session。
    • redis: Redis客户端库。
    • connect-redis: 用于将Session存储在Redis中的中间件。
  2. Redis配置

    • username, password, db_host, db_port: 分别为Redis的用户名、密码、主机名和端口。
    • options: 配置项,这里设置了no_ready_check以避免不必要的检查。
  3. Redis客户端创建

    • 使用redis.createClient()创建一个Redis客户端实例。
    • 监听error事件以处理可能的错误。
  4. 验证连接

    • 使用client.auth()方法验证Redis连接,并输出成功信息。
  5. Express应用配置

    • 使用express-session中间件,指定使用RedisStore作为Session存储。
    • 设置必要的配置项,如secretkeystore等。

通过以上步骤,你可以成功地将Node.js项目的Session迁移到百度云的Redis服务上,从而提高系统的性能和稳定性。


额。。用户名和密码都暴露了。。

QQ20140911-1.png

根据你提供的信息,假设你已经有一个Node.js应用,并且想使用百度云的Redis服务来存储Session数据。下面是具体的步骤和代码示例,帮助你在NodeClub项目中配置Session存储到百度云的Redis服务。

步骤:

  1. 安装必要的模块: 首先确保你已经安装了express-sessionconnect-redis。如果还没有安装,可以通过npm安装它们:

    npm install express-session connect-redis redis --save
    
  2. 配置Session存储到Redis: 修改你的应用配置文件或启动脚本,将Session存储替换为Redis存储。

示例代码:

const express = require('express');
const session = require('express-session');
const RedisStore = require('connect-redis')(session);
const redis = require('redis');

// 百度云Redis服务配置
const username = 'UrtgxzMPVigNEyOQF7yzg7C9'; // 用户名(API KEY)
const password = '1e0jDqkZ7fUwNGFD5LzwPY4YAQURFGYM'; // 密码(Secret KEY)
const db_host = 'redis.duapp.com';
const db_port = 80;

// 创建Redis客户端实例
const client = redis.createClient(db_port, db_host, { no_ready_check: true });
client.on("error", function (err) {
    console.error("Redis Error: " + err);
});

// 对Redis客户端进行身份验证
client.auth(`${username}-${password}-${db_name}`, function (err) {
    if (err) throw err;
});

const app = express();

// 使用Redis存储Session
app.use(session({
    secret: 'your-secret-key', // 你的会话密钥
    key: 'sid',
    store: new RedisStore({ client: client }),
    resave: false,
    saveUninitialized: false
}));

// 启动服务器
app.listen(3000, () => {
    console.log('Server is running on port 3000.');
});

注意事项:

  • 确保替换your-secret-key为你自己的会话密钥。
  • client.auth()方法中的db_name变量没有在代码片段中定义,请根据实际情况定义或删除该行。
  • 这个例子假设你已经有一个Express应用。如果你正在使用NodeClub或其他框架,请根据具体情况调整配置。

以上就是如何在Node.js应用中使用百度云的Redis服务来管理Session的基本步骤和代码示例。

回到顶部