使用node.js登录之后获取到session中的id,并根据id查询mysql数据库,获取到登录用户名,并使用模板引擎传递给客户端的前后端代码
时间: 2023-06-27 14:05:23 浏览: 46
下面是使用Node.js登录后获取session中的id,根据id查询MySQL数据库,获取登录用户名,并使用模板引擎传递给客户端的前后端代码:
1. 首先,在登录路由中设置session:
```javascript
// 登录路由
app.post('/login', function(req, res) {
// 获取用户名和密码
var username = req.body.username;
var password = req.body.password;
// 查询数据库,验证用户名和密码
var sql = "SELECT * FROM users WHERE username = ? AND password = ?";
connection.query(sql, [username, password], function(err, results) {
if (err) throw err;
if (results.length > 0) {
// 设置session
req.session.userId = results[0].id;
res.redirect('/dashboard');
} else {
res.send('用户名或密码错误!');
}
});
});
```
2. 在控制面板路由中,根据session中的id查询数据库获取用户名:
```javascript
// 控制面板路由
app.get('/dashboard', function(req, res) {
var userId = req.session.userId;
if (userId == null) {
res.redirect('/login');
return;
}
// 查询数据库,获取用户信息
var sql = "SELECT * FROM users WHERE id = ?";
connection.query(sql, [userId], function(err, results) {
if (err) throw err;
if (results.length > 0) {
var username = results[0].username;
// 使用模板引擎渲染页面,传递用户名
res.render('dashboard', { username: username });
} else {
res.send('用户不存在!');
}
});
});
```
3. 在dashboard.ejs模板文件中,使用传递过来的用户名显示欢迎信息:
```html
<!DOCTYPE html>
<html>
<head>
<title>控制面板</title>
</head>
<body>
<h1>欢迎 <%= username %>!</h1>
<p>这是您的控制面板。</p>
</body>
</html>
```