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

yizhihongxing

首先我们需要确保已经安装好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日

相关文章

  • PHP使用pdo连接access数据库并循环显示数据操作示例

    下面就来详细讲解一下如何使用PHP使用PDO连接Access数据库并循环显示数据操作。 步骤一:安装Access数据库驱动 首先需要安装 Microsoft Access Driver 的驱动程序,可以在微软的官网下载,下载后按照提示安装即可。如果已经安装了MS Office,则一般是已经自带了该驱动程序。 步骤二:建立Access数据库 在安装好驱动程序后…

    database 2023年5月22日
    00
  • springboot整合mongodb并实现crud步骤详解

    下面是关于“springboot整合mongodb并实现crud步骤详解”的完整攻略: 概述 springboot是一款非常方便的java web开发框架,也支持与mongodb数据库进行配合使用。在这篇攻略中,我们将介绍如何使用springboot整合mongodb,并实现crud操作。 步骤 添加依赖 在springboot项目的pom.xml文件中添加…

    database 2023年5月22日
    00
  • 在SQL SERVER中查询数据库中第几条至第几条之间的数据SQL语句写法

    要在SQL SERVER中查询数据库中第几条至第几条之间的数据,可以通过LIMIT或OFFSET和FETCH NEXT语句来实现,具体步骤如下: 使用ORDER BY语句对表中的数据进行排序 在查询数据之前,需要使用ORDER BY语句对表中的数据进行排序,以便能够准确地指定要查询的数据范围。例如,以下语句将按照id字段升序排序: SELECT * FROM…

    database 2023年5月19日
    00
  • Mysql数据库报错2003 Can’t connect to MySQL server on ‘localhost’ (10061)解决

    当我们尝试连接MySQL数据库时,有时会遇到以下错误: 2003 Can’t connect to MySQL server on ‘localhost’ (10061) 这是一个常见的MySQL连接错误,一般是由于数据库服务没有启动、防火墙或者MySQL的配置问题导致的。以下是针对该错误的完整攻略: 1. 检查MySQL服务是否启动 在出现该错误之前,先检…

    database 2023年5月18日
    00
  • SQL 计算累计乘积

    下面我来详细讲解SQL计算累计乘积的方法,包含两条实例。 什么是SQL计算累计乘积? SQL计算累计乘积,是指在某一列中,计算该列元素之间的乘积,得到一个连续的乘积列。例如,给定一组数据[1, 2, 3, 4, 5],则该数据的累乘结果为[1, 2, 6, 24, 120]。 SQL计算累计乘积的实现方法 方法一:使用乘积自连接 我们可以使用乘积自连接的方法…

    database 2023年3月27日
    00
  • C++11中异常处理机制详解

    C++11中异常处理机制详解 什么是异常处理机制? 异常处理机制是程序设计领域中一种常用的错误处理方法。在程序执行过程中,如果发生了错误,就会抛出异常,程序会根据异常处理机制对错误进行处理,以防止程序崩溃。 C++11中异常处理机制的改进 C++11引入了许多新特性,其中就有对异常处理机制的改进。主要包括: 更加精准的异常捕获机制 可以指定函数不抛出异常 可…

    database 2023年5月21日
    00
  • MySQL使用集合函数进行查询操作实例详解

    MySQL使用集合函数进行查询操作实例详解 在MySQL中,可以使用集合函数对数据进行聚合计算。本文将详细讲解MySQL中使用集合函数进行查询操作的步骤和示例。 集合函数 MySQL中的集合函数主要包括以下几个: COUNT:统计行数 SUM:求和 AVG:求平均值 MAX:求最大值 MIN:求最小值 使用这些函数可以轻松地对数据进行聚合计算。 查询操作实例…

    database 2023年5月22日
    00
  • 持续集成工具之Jenkins安装部署的详细教程

    下面我将为您详细讲解“持续集成工具之Jenkins安装部署的详细教程”的完整攻略。 1.安装Jenkins Jenkins是一个Java编写的开源持续集成工具,可以在Windows、Linux、MacOS等系统上安装。 1.1 安装Java 在安装Jenkins之前,先要确保安装了Java环境。以下教程将以CentOS7 64位系统为例。 首先,进入终端并输…

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