开箱即用的Node.js+Mysql模块封装实现详解

yizhihongxing

当我们开发Node.js后台应用时,常常需要使用数据库来存储和管理数据。而Mysql数据库是使用最广泛的关系型数据库之一。在Node.js中使用Mysql,需要使用mysql模块来连接Mysql数据库。但是,每次使用mysql模块时,都需要写很多重复的代码,包括连接数据库、执行sql语句等。为了提高开发效率,我们可以将这些常用的操作封装成一个模块,使得我们在使用时能够更加方便快捷。

以下是使用Node.js和Mysql封装一个模块的步骤:

步骤一:安装mysql模块

使用npm安装mysql模块:

npm install mysql --save

步骤二:创建db.js文件

在项目根目录下创建db.js文件,用于封装mysql模块的操作

const mysql = require("mysql");
const pool = mysql.createPool({
  host: "localhost",
  user: "root",
  password: "123456",
  database: "test"
});

let query = function(sql, values) {
  return new Promise((resolve, reject) => {
    pool.getConnection(function(err, connection) {
      if (err) reject(err);
      else {
        connection.query(sql, values, (err, rows) => {
          if (err) reject(err);
          else {
            resolve(rows);
          }
          connection.release();
        });
      }
    });
  });
};

module.exports = { query };

在上面的代码中,我们使用mysql模块创建了一个连接池,并通过Promise异步操作的方式封装了mysql的query方法。

步骤三:在业务模块中使用db.js文件

在业务模块中使用db.js文件中的query方法,如下:

const express = require("express");
const router = express.Router();
const db = require("../db");

router.get("/", async function(req, res) {
  try {
    let result = await db.query("SELECT * FROM users WHERE id=?", [1]);
    res.json(result);
  } catch (err) {
    console.error(err);
    res.status(500).send("服务器内部错误:" + err.message);
  }
});

module.exports = router;

在上面的代码中,我们在业务模块中引入了db.js文件,并使用await异步操作的方式调用了其中的query方法。

至此,一个开箱即用的Node.js+Mysql模块封装实现就完成了。

下面是示例说明:

示例一:查询用户列表

const express = require("express");
const router = express.Router();
const db = require("../db");

router.get("/", async function(req, res) {
  try {
    let result = await db.query("SELECT * FROM users");
    res.json(result);
  } catch (err) {
    console.error(err);
    res.status(500).send("服务器内部错误:" + err.message);
  }
});

module.exports = router;

在上面的代码中,我们在业务模块中调用了db.js文件中的query方法,查询了users表中的所有数据,并将查询结果以json格式返回。

示例二:添加用户

const express = require("express");
const router = express.Router();
const db = require("../db");

router.post("/", async function(req, res) {
  const { name, age, sex } = req.body;
  try {
    let result = await db.query("INSERT INTO users(name, age, sex) VALUES(?,?,?)", [name, age, sex]);
    res.json({ id: result.insertId });
  } catch (err) {
    console.error(err);
    res.status(500).send("服务器内部错误:" + err.message);
  }
});

module.exports = router;

在上面的代码中,我们在业务模块中调用了db.js文件中的query方法,向users表中添加了一条数据,并返回添加数据的id。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:开箱即用的Node.js+Mysql模块封装实现详解 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • 浅析nodejs实现Websocket的数据接收与发送

    浅析Node.js实现WebSocket的数据接收与发送 什么是WebSocket WebSocket是一种在单个TCP连接上进行全双工通信的协议。它使得客户端和服务器端之间可以进行实时数据交换和数据推送而无需采取轮询方式,从而减少了网络流量和延迟。 WebSocket的实现过程 从客户端到服务器 客户端和服务器握手建立连接,此时会发送HTTP header…

    node js 2023年6月8日
    00
  • nodejs 日志模块winston的使用方法

    下面是关于“nodejs 日志模块winston的使用方法”的完整攻略: 什么是winston winston 是一个流行的 Node.js 日志记录库。它允许开发人员在应用程序中方便地配置、记录和存储日志消息,而无需编写适用于多个日志级别的自定义代码。winston 支持多种目标,例如文件、数据库、控制台和 syslog。 安装winston 在Node.…

    node js 2023年6月8日
    00
  • 总结几道关于Node.js的面试问题

    我将为你提供 “总结几道关于Node.js的面试问题”的完整攻略。Node.js是目前非常流行的一种服务器端运行环境,也成为了很多公司的首选技术之一。在面试过程中,Node.js必然会成为面试官所重点问及的内容之一。以下详细讲解关于Node.js的一些面试问题,供你参考: 如何阻止Node.js程序在崩溃时停机? 这是一个经典问题,面试官想考察你是否有Eve…

    node js 2023年6月8日
    00
  • 基于 Node.js 实现前后端分离

    实现前后端分离是一个现代Web应用程序开发的常见需求。Node.js是一个非常流行的服务器端JavaScript运行环境,并且它适用于构建出色的API和单页应用程序(SPA)。下面是基于Node.js实现前后端分离的攻略过程: 步骤一:安装Node.js 首先,你需要安装Node.js。你可以在Node.js官网下载适合您操作系统的安装程序。安装完成之后,打…

    node js 2023年6月8日
    00
  • vue-element-admin中node-sass换成dart-sass,安装依赖报code 128多种问题的解决方法

    下面是详细讲解: 概述 vue-element-admin是基于Vue.js开发的后台管理系统模板,其中使用了node-sass作为样式预处理器。然而,由于node-sass的维护状态不佳,建议将其替换为dart-sass,以避免bug和性能问题。在替换过程中,可能会出现一些依赖安装问题,本文将为您提供完整的解决方案。 步骤 1. 卸载node-sass 在…

    node js 2023年6月9日
    00
  • 一文搞懂TypeScript的安装、使用、自动编译的教程

    一文搞懂TypeScript的安装、使用、自动编译的教程 安装 TypeScript可以通过npm安装。打开终端并输入以下命令: npm install -g typescript 这会全局安装TypeScript,你可以在任何地方访问它。 使用 编辑器 推荐使用Visual Studio Code编辑器,它有强大的TypeScript支持。 创建项目 首先…

    node js 2023年6月9日
    00
  • Node.js如何提取文件中的中文字符

    下面是详细讲解“Node.js如何提取文件中的中文字符”的完整攻略。 概述 在Node.js中提取文件中的中文字符有多种方法,最常用的是通过正则表达式匹配。Node.js中的正则表达式与JavaScript中的正则表达式基本相同。 步骤 以下是提取文件中的中文字符的步骤: 首先,需要使用Node.js的内置模块fs来读取文件。使用fs模块中的readFile…

    node js 2023年6月8日
    00
  • 如何使用gpu.js改善JavaScript的性能

    使用GPU.js可以将JavaScript代码转化成基于GPU的代码,从而提高JavaScript代码的性能。下面是使用GPU.js来改善JavaScript性能的详细攻略: 1. 安装GPU.js 可以通过npm来安装GPU.js,输入以下命令: npm install gpu.js 安装了GPU.js之后可以在代码中引用,示例代码如下: const GP…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部