Node.js利用Express实现用户注册登陆功能(推荐)
要求了解Express框架了解node.js常用模块:express,body-parser,mysql了解express Router了解HTML form表单了解MySQL Server及安装使用了解SQLyog使用环境OS: Win10 Node.js: v12.19.0 Express: v4.17.1 Yarn: v1.22.10使用VScode IDE body-parser:1.19.0 mysql: 2.18.1 MySQL Server:5.7 SQLyog:V12.9准备首先在Win10上安在本教程中,我们将探讨如何使用Node.js和Express框架构建用户注册和登录功能。你需要对以下几个技术有一定的了解: 1. **Express框架**:Express是Node.js中最流行的Web应用程序框架,它提供了一套简洁的API来处理HTTP请求和响应,简化了Web应用的开发。 2. **Node.js常用模块**: - **Express**:核心框架,用于构建Web服务。 - **body-parser**:Express中间件,解析请求体(通常为JSON或URL编码的数据)。 - **mysql**:Node.js中的MySQL驱动,用于与MySQL服务器进行交互。 3. **Express Router**:Express路由器是处理特定路由的子应用,允许我们组织代码并创建可重用的路由逻辑。 4. **HTML form表单**:用于收集用户输入,如账号和密码,通常通过``元素定义,并通过`action`属性指定提交的URL,`method`属性定义提交方式(GET或POST)。 5. **MySQL Server**:开源的关系型数据库管理系统,用于存储和管理用户数据。 6. **SQLyog**:MySQL数据库的图形化管理工具,用于创建、管理和维护数据库。在Win10环境下,首先确保安装了Node.js(v12.19.0)、Express(v4.17.1)、Yarn(v1.22.10)。然后,通过npm或Yarn安装所需的依赖包,如`body-parser`和`mysql`。接下来,我们需要设置MySQL Server(版本5.7),通过SQLyog(v12.9)建立连接并创建数据库。以下是一个简单的用户表结构示例: ```sql CREATE TABLE user ( username char(20) NOT NULL, password char(20) NOT NULL, email char(30) DEFAULT NULL, address char(20) DEFAULT NULL, phonenumber char(20) DEFAULT NULL, logintime int(20) DEFAULT NULL, id int(20) NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), KEY username (username) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ```前端页面包括`login.html`、`register.html`和`index.html`。`login.html`和`register.html`包含HTML表单,分别用于用户登录和注册。表单提交后,数据将发送到服务器端的`/login`和`/register`路由。在服务器端,我们需要编写Express应用来处理这些路由。例如,`/register`路由接收POST请求,解析用户输入,验证数据,然后将其存储到MySQL数据库。`/login`路由处理GET请求,可能还需要处理POST请求以验证用户凭据。 ```javascript const express = require('express'); const bodyParser = require('body-parser'); const mysql = require('mysql'); const app = express(); app.use(bodyParser.urlencoded({ extended: true })); //连接MySQL数据库const connection = mysql.createConnection({ host: 'localhost', user: 'your_username', password: 'your_password', database: 'your_database' }); connection.connect((err) => { if (err) throw err; console.log('Connected to MySQL Server!'); }); app.post('/register', (req, res) => { const { user, password } = req.body; //验证数据,然后插入数据库}); app.get('/login', (req, res) => { //显示登录表单//如果是POST请求,验证用户凭据}); app.listen(3000, () => { console.log('Server is running on port 3000'); }); ```在实际项目中,你需要添加错误处理、数据验证、密码加密等功能。例如,可以使用bcrypt库对密码进行哈希处理,提高安全性。同时,为了防止SQL注入,应使用参数化查询或预编译语句。这个教程涵盖了从搭建开发环境到构建用户注册和登录功能的基本流程。通过学习和实践,你可以掌握使用Node.js和Express构建Web应用的核心技术,并为进一步深入开发奠定基础。
文件大小:138.11KB
评论区