express,MySQL 实现登录接口
使用 Express 和 MySQL 实现一个登录接口涉及几个步骤,包括设置 Express 服务器、连接 MySQL 数据库、创建用户表(如果还没有)、编写登录接口的逻辑等。以下是一个简单的实现示例:
1. 设置项目
首先,创建一个新的项目文件夹并初始化一个新的 Node.js 项目:
mkdir login-api
cd login-api
npm init -y
2. 安装依赖
安装 Express 和 MySQL 相关的依赖:
npm install express mysql2 body-parser
3. 创建数据库和用户表
确保你的 MySQL 数据库已经启动,并创建一个数据库(例如 login_db
)和用户表(例如 users
)。
CREATE DATABASE login_db;
USE login_db;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL -- 注意:实际项目中应使用哈希密码
);
4. 编写服务器代码
在项目文件夹中创建一个 server.js
文件,并添加以下代码:
const express = require('express');
const mysql = require('mysql2');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;
// 配置 MySQL 连接
const db = mysql.createConnection({
host: 'localhost',
user: 'root', // 根据实际情况修改
password: 'your_password', // 根据实际情况修改
database: 'login_db'
});
// 连接到数据库
db.connect((err) => {
if (err) {
throw err;
}
console.log('MySQL connected...');
});
// 使用 body-parser 中间件解析 JSON 请求体
app.use(bodyParser.json());
// 登录接口
app.post('/login', (req, res) => {
const { username, password } = req.body;
if (!username || !password) {
return res.status(400).json({ message: 'Username and password are required' });
}
const query = 'SELECT * FROM users WHERE username = ?';
db.query(query, [username], (err, results) => {
if (err) {
return res.status(500).json({ message: 'Internal server error' });
}
if (results.length === 0) {
return res.status(401).json({ message: 'Invalid username or password' });
}
const user = results[0];
// 注意:实际项目中应验证哈希密码
if (user.password === password) {
return res.status(200).json({ message: 'Login successful', user: { username: user.username } });
} else {
return res.status(401).json({ message: 'Invalid username or password' });
}
});
});
app.listen(port, () => {
console.log(`Server is running on http://localhost:${port}`);
});
5. 启动服务器
在终端中运行以下命令启动服务器:
node server.js
6. 测试登录接口
你可以使用 Postman 或其他 API 测试工具来测试登录接口。发送一个 POST 请求到 http://localhost:3000/login
,并在请求体中包含 JSON 格式的用户名和密码:
{
"username": "your_username",
"password": "your_password"
}
注意事项
- 密码存储:在实际项目中,不要以明文形式存储密码。应使用密码哈希(如 bcrypt)来存储和验证密码。
- 错误处理:应添加更多的错误处理逻辑,以确保代码的健壮性。
- SQL 注入:虽然此示例中使用了参数化查询来防止 SQL 注入,但在实际项目中应保持警惕,避免使用拼接字符串的方式来构建 SQL 查询。
希望这个示例能帮助你实现一个简单的登录接口!
原文地址:https://blog.csdn.net/xuelian3015/article/details/142676413
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!