后端存储session代码
时间: 2023-09-19 15:05:49 浏览: 41
后端存储session的代码示例(以Node.js为例):
1. 文件存储:
```javascript
const fs = require('fs');
const path = require('path');
const sessionFilePath = path.join(__dirname, 'session');
function getSession(id) {
const session = {};
if (fs.existsSync(sessionFilePath)) {
const content = fs.readFileSync(sessionFilePath, 'utf8');
session = JSON.parse(content);
}
return session[id];
}
function setSession(id, data) {
let session = {};
if (fs.existsSync(sessionFilePath)) {
const content = fs.readFileSync(sessionFilePath, 'utf8');
session = JSON.parse(content);
}
session[id] = data;
fs.writeFileSync(sessionFilePath, JSON.stringify(session));
}
```
2. 数据库存储(以MySQL为例):
```javascript
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'test',
});
function getSession(id) {
return new Promise((resolve, reject) => {
const sql = `SELECT * FROM session WHERE id='${id}'`;
connection.query(sql, (error, results) => {
if (error) {
reject(error);
} else {
resolve(results[0] ? results[0].data : null);
}
});
});
}
function setSession(id, data) {
const sql = `INSERT INTO session(id, data) VALUES ('${id}', '${data}') ON DUPLICATE KEY UPDATE data='${data}'`;
connection.query(sql, (error, results) => {
if (error) {
console.error(error);
}
});
}
```
3. 缓存存储(以Redis为例):
```javascript
const redis = require('redis');
const client = redis.createClient();
function getSession(id) {
return new Promise((resolve, reject) => {
client.get(id, (error, data) => {
if (error) {
reject(error);
} else {
resolve(data);
}
});
});
}
function setSession(id, data) {
client.set(id, data);
}
```
以上代码仅供参考,具体实现方式需要根据具体业务需求进行调整。