用node和express连接mysql实现登录注册的实现代码

首先我们需要确保已经安装好Node和MySQL,并且已经创建好了相应的数据库和数据表。

  1. 创建Express工程

首先,我们需要创建一个新的Express应用程序,可以通过执行以下命令进行创建:

$ npm install -g express-generator
$ express myapp
$ cd myapp
$ npm install

这样就可以创建一个名为 myapp 的Express应用程序,并且安装了相关的依赖包。

  1. 安装MySQL模块

接下来,我们需要安装 mysql 模块来连接MySQL数据库。可以通过以下命令进行安装:

$ npm install mysql --save
  1. 连接MySQL数据库

app.js 文件中添加以下代码,连接数据库,并且导出数据库连接的对象 pool

const mysql = require('mysql');

const pool = mysql.createPool({
  connectionLimit: 10,
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'myapp'
});

module.exports = pool;

在上面的代码中,我们创建了一个连接池,设置了最大连接数、主机名、用户名、密码、数据库名等信息,并且将其导出。

  1. 实现用户注册

首先,我们需要创建一个注册路由,接收从客户端传来的用户名和密码,并且将其插入到数据库中。可以在 routes 目录下的 users.js 文件中添加以下代码:

const express = require('express');
const router = express.Router();
const pool = require('../app');

router.post('/register', (req, res) => {
  const username = req.body.username;
  const password = req.body.password;

  pool.getConnection((err, connection) => {
    if (err) {
      res.status(500).send('Database Error');
      return;
    }

    const query = `INSERT INTO users (username, password) VALUES ('${username}', '${password}')`;

    connection.query(query, (error, results, fields) => {
      connection.release();

      if (error) {
        res.status(500).send('Database Error');
        return;
      }

      res.status(200).send('Success');
    });
  });
});

module.exports = router;

在上面的代码中,我们使用 POST 方法来处理客户端发来的注册请求,在注册请求中,我们从请求体中获取了用户名和密码,然后插入到数据库中,如果插入成功,则返回一个成功的响应状态码和消息。

  1. 实现用户登录

接下来,我们需要实现用户登录功能。可以在 routes 目录下的 users.js 文件中添加以下代码:

router.post('/login', (req, res) => {
  const username = req.body.username;
  const password = req.body.password;

  pool.getConnection((err, connection) => {
    if (err) {
      res.status(500).send('Database Error');
      return;
    }

    const query = `SELECT * FROM users WHERE username = '${username}' AND password = '${password}'`;

    connection.query(query, (error, results, fields) => {
      connection.release();

      if (error) {
        res.status(500).send('Database Error');
        return;
      }

      if (results.length === 0) {
        res.status(401).send('Unauthorized');
        return;
      }

      res.status(200).send('Success');
    });
  });
});

在上面的代码中,我们使用 POST 方法来处理客户端发来的登录请求,在登录请求中,我们从请求体中获取了用户名和密码,然后查询数据库,如果用户名和密码正确,则返回一个成功的响应状态码和消息,否则返回401未授权的响应。

示例1:实现用户注册

客户端代码(使用Fetch API):

fetch('/users/register', { 
  method: 'POST', 
  headers: { 
    'Content-Type': 'application/json' 
  },
  body: JSON.stringify({
    username: 'test',
    password: '123456'
  })
})
.then(response => {
  if (response.ok) {
    console.log('注册成功');
  } else {
    console.error('注册失败');
  }
})
.catch(error => {
  console.error('网络错误');
});

示例2:实现用户登录

客户端代码(使用jQuery):

$.ajax({
  url: '/users/login',
  type: 'POST',
  dataType: 'json',
  data: { 
    username: 'test', 
    password: '123456' 
  },
  success: function(data) {
    console.log('登录成功');
  },
  error: function(xhr, textStatus, error) {
    console.error('登录失败');
  }
});

以上就是使用Node和Express连接MySQL实现登录注册的实现代码的攻略。需要注意的是,在实际应用中,我们需要对用户输入的密码进行加密处理,保证用户的数据安全。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用node和express连接mysql实现登录注册的实现代码 - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • centos 5 手动分区来安装系统的方法

    下面是详细讲解“centos 5 手动分区来安装系统的方法”的完整攻略。 1. 准备工作 在开始手动分区来安装CentOS 5之前,需要做一些准备工作: 下载并制作CentOS 5安装盘或者USB启动盘 准备一台能够直接安装CentOS的计算机 确保你了解你的硬件规格,包括硬盘大小等 2. 启动安装程序 将制作好的CentOS 5安装盘或者USB启动盘插入计…

    database 2023年5月22日
    00
  • PostgreSQL数据库的基本查询操作

    PostgreSQL数据库的基本查询操作攻略 PostgreSQL是一款功能强大的开源关系型数据库系统,支持多种数据类型和查询操作。在本篇攻略中,我们将介绍PostgreSQL数据库的基本查询操作,包括如何查询表、过滤数据、排序数据、聚合数据等。以下是具体步骤: 1. 创建表格 在开始查询操作之前,需要先创建一个包含数据的表格。使用如下命令创建一个test表…

    database 2023年5月21日
    00
  • 带例子详解Sql中Union和Union ALL的区别

    以下是“带例子详解Sql中Union和Union ALL的区别”的攻略: 1. Union和Union ALL的基本概念 在SQL语句中,Union和Union ALL是用来合并两个或多个SELECT语句的关键字。它们的基本语法如下: SELECT column1, column2, … FROM table1 UNION [ALL] SELECT co…

    database 2023年5月21日
    00
  • 深入理解MySQL事务的4种隔离级别

    深入理解 MySQL 事务的 4 种隔离级别 什么是事务? 事务是指一系列数据库操作作为一个统一的工作单元,要么全部执行,要么全部回滚的过程。事务一般具有四个属性,ACID:- Atomicity(原子性)- Consistency(一致性)- Isolation(隔离性)- Durability(持久性) 本文重点讲解事务的隔离性。 事务的隔离级别 MyS…

    database 2023年5月21日
    00
  • SQL 计算行数

    下面是SQL计算行数的攻略以及两个实例。 什么是SQL计算行数 SQL计算行数是指在数据库中进行数据查询时,我们可以使用SQL内置的函数COUNT()计算满足条件的记录数量,也就是行数。这个功能在实际开发中非常实用,可以帮助我们快速得到某个查询条件下的记录总数。 COUNT()函数使用方法 COUNT()函数是SQL中非常常用的一个聚合函数,主要用于计算满足…

    database 2023年3月27日
    00
  • python 连接 redis cluster 集群

    一. redis集群模式有多种, cluster模式只是其中的一种实现方式, 其原理请自行谷歌或者百度, 这里只举例如何使用Python操作 redis cluster 集群   二. python 连接 redis cluster 集群   第三方库:     redis-py-cluster: 最近还在维护     rediscluster: 似乎很久没…

    Redis 2023年4月11日
    00
  • mySql关于统计数量的SQL查询操作

    MySQL是一种常用的关系型数据库管理系统,提供了丰富的SQL查询操作来满足各种数据统计需求。本文将针对MySQL中统计数量的查询操作进行详细讲解,包括普通的COUNT函数查询、带有GROUP BY的统计查询以及多表关联查询中的数量统计。 一、普通的COUNT函数查询 COUNT函数是MySQL中常用的统计函数之一,用于统计表中满足给定条件的记录数量。其基本…

    database 2023年5月22日
    00
  • MySQL时间类型和模式详情

    MySQL是一种流行的关系型数据库系统,它提供了多种时间类型和模式,用于存储和处理时间数据。本文将详细介绍MySQL时间类型和模式的详细攻略。 时间类型 MySQL支持六种时间类型,分别是: DATE:日期类型,格式为YYYY-MM-DD,用于存储日期数据。 TIME:时间类型,格式为HH:MM:SS,用于存储时间数据。 DATETIME:日期时间类型,格式…

    database 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部