登录页面后端node和mysql怎么写
时间: 2024-06-11 12:11:20 浏览: 31
下面是一个简单的 Node.js 和 MySQL 登录页面后端示例:
1. 安装依赖
```bash
npm install express mysql body-parser express-session
```
2. 创建数据库并创建用户表
```mysql
CREATE DATABASE mydb;
USE mydb;
CREATE TABLE users (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL
);
```
3. 创建一个 app.js 文件
```javascript
const express = require('express');
const bodyParser = require('body-parser');
const session = require('express-session');
const mysql = require('mysql');
const app = express();
// 配置body-parser
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
// 配置session
app.use(session({
secret: 'mysecret',
resave: false,
saveUninitialized: false,
}));
// 配置 MySQL 数据库
const db = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydb',
});
// 连接 MySQL 数据库
db.connect((err) => {
if (err) {
console.log('Unable to connect to MySQL database:', err);
throw err;
}
console.log('MySQL database connected.');
});
// 处理登录请求
app.post('/login', (req, res) => {
const { username, password } = req.body;
const sql = `SELECT * FROM users WHERE username = '${username}' AND password = '${password}'`;
db.query(sql, (err, result) => {
if (err) {
console.log('Unable to query MySQL database:', err);
throw err;
}
if (result.length === 1) {
req.session.user = username;
res.json({ success: true });
} else {
res.json({ success: false });
}
});
});
// 处理注销请求
app.post('/logout', (req, res) => {
req.session.destroy((err) => {
if (err) {
console.log('Unable to destroy session:', err);
throw err;
}
res.json({ success: true });
});
});
// 启动服务器
app.listen(3000, () => {
console.log('Server started on port 3000...');
});
```
4. 运行应用程序
```bash
node app.js
```
现在,您可以在浏览器中打开 `http://localhost:3000`,然后测试登录和注销功能。