本文共 3468 字,大约阅读时间需要 11 分钟。
在开始之前,我们需要完成以下几个步骤来搭建一个完整的登录注册系统。通过本文,你将学习如何从零开始使用 Node.js、Express 和 MySQL 创建一个基本的用户认证系统。
首先,我们需要确保我们的开发环境已经准备就绪。以下是安装所需软件的步骤:
安装 Node.js:你可以通过官网或包管理工具进行安装。例如,在终端中运行以下命令:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -sudo apt-get install -y nodejs
安装 Express:Express 是一个基于 Node.js 的快速开发框架。可以通过以下命令全局安装 Express:
npm install express -g
安装 MySQL:如果你还没有安装 MySQL,可以通过官网或包管理工具进行安装。例如,在 Ubuntu 系统中:
sudo apt-get install mysql-server
通过 Express 初始化一个项目,可以选择使用ejs 或 jade 等模板引擎。我们这里使用ejs:
express -g
然后进入项目目录,初始化项目:
cd my_projectnpm init -y
接下来,我们需要配置数据库。首先,确保你已经安装了 MySQL 并且能够访问数据库。以下是数据库配置的示例:
{ "development": { "url": "mysql://root:secret@localhost:3306/mydb", "dialect": "mysql" }, "test": { "url": "mysql://root:secret@localhost:3306/testDB", "dialect": "mysql" }} 在 config/db.js 文件中定义数据库连接信息。
我们需要创建路由文件,处理用户的登录和注册逻辑。在 routes/user.js 中添加以下内容:
const express = require('express');const router = express.Router();const db = require('../config/db');router.get('/register', (req, res) => { // 获取用户信息,检查是否已注册 const { phone } = req.query; const query = 'SELECT * FROM users WHERE phone = ?'; db.query(query, phone, (err, result) => { if (err) { res.send({ status: 500, msg: '数据库错误' }); } else if (result.length > 0) { res.send({ status: 0, msg: '用户已存在' }); } else { // 插入新用户 const insertQuery = 'INSERT INTO users (phone) VALUES (?)'; db.query(insertQuery, [phone], (err, result) => { if (err) { res.send({ status: 500, msg: '注册失败' }); } else { res.send({ status: 0, msg: '注册成功' }); } }); } });});router.get('/login', (req, res) => { // 获取用户信息,验证登录 const { phone, password } = req.query; const query = 'SELECT * FROM users WHERE phone = ?'; db.query(query, phone, (err, result) => { if (err) { res.send({ status: 500, msg: '数据库错误' }); } else if (result.length > 0) { // 验证密码 if (result[0].password === password) { res.send({ status: 0, msg: '登录成功' }); } else { res.send({ status: 0, msg: '密码错误' }); } } else { res.send({ status: 0, msg: '用户不存在' }); } });}); 为了更高效地开发,我们可以使用 supervisor 来启动服务器。安装 supervisor:
npm install supervisor -g
然后启动服务器:
supervisor bin/www
打开浏览器,访问 http://127.0.0.1:3000 就可以看到你的项目页面。
以下是项目生成后的目录结构图:
project/├── app.js # Express 项目入口├── routes/│ ├── user.js # 用户路由│ └── index.js # 主路由├── config/│ ├── db.js # 数据库配置│ └── user.js # 用户表定义├── public/│ └── index.html # 网页入口├── views/│ └── index.ejs # 主页模板└── package.json # 项目依赖
app.js 文件内容如下:
const express = require('express');const router = express.Router();const db = require('./config/db');// 路由中间件router.use('/api', require('./routes'));const port = process.env.PORT || 3000;app.listen(port, () => { console.log(`服务器运行在 http://localhost:${port}`);}); 确保数据库已经安装,并创建用户数据库。使用 navicat 或其他数据库管理工具创建数据库连接:
navicat,创建新的数据库。CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, phone VARCHAR(20) UNIQUE NOT NULL);
通过以上步骤,你已经成功搭建了一个基于 Node.js、Express 和 MySQL 的登录注册系统。虽然看起来简单,但实际开发中需要注意很多细节,包括数据库连接、前后端交互、错误处理等。熟悉这些流程对于后续开发非常重要。
转载地址:http://zijfk.baihongyu.com/