nodejs中操作mysql数据库示例

yizhihongxing

下面是关于“nodejs中操作mysql数据库示例”的完整攻略。

1. 安装相关模块

首先,我们需要通过npm来安装以下两个模块:

npm install mysql
npm install dotenv

其中,mysql是操作mysql数据库的模块,而dotenv是加载环境变量的模块。在本示例中,我们会将连接数据库的参数存储在环境变量中。

2. 连接数据库

在连接数据库之前,我们需要准备一下数据库的相关信息,例如:

DB_HOST=localhost
DB_USER=root
DB_PASSWORD=password
DB_NAME=my_database

上述参数包括数据库地址(DB_HOST)、用户名(DB_USER)、密码(DB_PASSWORD)以及要连接的数据库名称(DB_NAME)。

在代码中,我们需要使用dotenv模块来加载环境变量,然后使用mysql模块连接数据库。以下是连接数据库的示例代码:

require('dotenv').config();

const mysql = require('mysql');

const connection = mysql.createConnection({
  host: process.env.DB_HOST,
  user: process.env.DB_USER,
  password: process.env.DB_PASSWORD,
  database: process.env.DB_NAME,
});

connection.connect((error) => {
  if (error) {
    console.error('error connecting: ', error);
    return;
  }

  console.log('connected as id ' + connection.threadId);
});

以上代码中,我们首先使用dotenv模块来加载环境变量,然后使用mysql模块创建一个连接对象(connection)。在调用connection.connect()方法时,我们可以处理连接成功和失败的情况。

3. 查询数据

连接成功后,我们可以通过connection.query()方法来查询数据。以下是示例代码:

// 查询所有数据
connection.query('SELECT * FROM my_table', (error, results, fields) => {
  if (error) throw error;

  console.log(results);
});

// 查询符合条件的数据
connection.query(
  'SELECT * FROM my_table WHERE id = ?',
  [1],
  (error, results, fields) => {
    if (error) throw error;

    console.log(results);
  }
);

以上代码中,我们使用connection.query()方法来查询数据库中的数据。第一个参数是MySQL查询语句,第二个参数是查询条件(可选),第三个参数是回调函数,用来处理查询结果。

在第一个示例中,我们查询了所有数据,并直接打印出结果。而在第二个示例中,我们查询了id等于1的数据,并打印出结果。

4. 插入数据

除了查询数据,我们还可以使用connection.query()方法来插入数据。以下是示例代码:

const data = {
  name: 'John Doe',
  age: 30,
  email: 'john.doe@example.com',
};

connection.query('INSERT INTO my_table SET ?', data, (error, results, fields) => {
  if (error) throw error;

  console.log('Inserted ' + results.affectedRows + ' row(s).');
});

以上代码中,我们使用connection.query()方法来插入一条数据。第一个参数是MySQL插入语句,而第二个参数是一个对象,包含要插入的数据。在插入成功后,我们打印出受影响的行数。

5. 更新数据和删除数据

与插入数据类似,我们也可以使用connection.query()方法来更新数据和删除数据。以下是示例代码:

// 更新数据
connection.query(
  'UPDATE my_table SET name = ?, age = ? WHERE id = ?',
  ['John Doe', 40, 1],
  (error, results, fields) => {
    if (error) throw error;

    console.log('Updated ' + results.affectedRows + ' row(s).');
  }
);

// 删除数据
connection.query('DELETE FROM my_table WHERE id = ?', [1], (error, results, fields) => {
  if (error) throw error;

  console.log('Deleted ' + results.affectedRows + ' row(s).');
});

以上代码中,我们使用connection.query()方法来更新和删除数据。在更新数据时,第一个参数是MySQL更新语句,第二个参数是一个数组,包含要更新的值,而第三个参数是回调函数,用来处理操作结果。删除数据与之类似,只是第一个参数是MySQL删除语句。

6. 关闭数据库连接

在完成操作后,我们需要使用connection.end()方法来关闭数据库连接,以释放资源。以下是示例代码:

connection.end((error) => {
  if (error) {
    console.error('error disconnecting: ', error);
    return;
  }

  console.log('disconnected');
});

以上代码中,我们使用connection.end()方法来关闭数据库连接,并处理关闭成功和失败的情况。当然,如果你需要保持连接不关闭,也可以不调用该方法。

到此为止,我们完成了操作mysql数据库的示例。希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:nodejs中操作mysql数据库示例 - Python技术站

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

相关文章

  • webpack打包node.js后端项目的方法

    下面是“webpack打包node.js后端项目的方法”的完整攻略。 1. 确认项目结构 首先要确认项目结构是否满足webpack打包的要求。在将node.js后端项目使用webpack打包前,请先确认项目目录结构是否符合以下要求: 项目根目录下应该有一个 main.js 或者 index.js 的入口文件。 项目应该统一使用 import/export 语…

    node js 2023年6月8日
    00
  • NodeJS读取分析Nginx错误日志的方法

    当我们在Web开发过程中,经常需要处理Nginx的错误日志。而在大部分情况下,错误日志约束着我们更好地维护我们的站点。如果你的站点上线运行了一段时间,你会看到Nginx日志文件变得越来越大,并且你会花费大量的时间来分析错误的来源和原因。因此,使用NodeJS来处理Nginx错误日志是非常有用的。 1. 安装NodeJS 首先需要安装NodeJS,NodeJS…

    node js 2023年6月8日
    00
  • 基于NodeJS的前后端分离的思考与实践(二)模版探索

    【标题】基于NodeJS的前后端分离的思考与实践(二)模版探索 【摘要】本文将探索基于NodeJS的前后端分离场景下的模版渲染,包括模版引擎的选择、模版渲染的实现方式以及相关的代码示例。 一、选择模板引擎 在前后端分离的情况下,有许多选择支持前后端都能够使用的模版引擎,例如EJS、Handlebars、Pug等。在选择模板引擎的时候,我们需要考虑一些关键因素…

    node js 2023年6月8日
    00
  • node.js入门教程之querystring模块的使用方法

    下面是“node.js入门教程之querystring模块的使用方法”的完整攻略。 一、querystring模块的基本介绍 querystring 模块是 Node.js 中内置的一个提供了一些实用工具的模块,可以用来进行 URL 查询字符串的解析和序列化,常用于处理 HTTP 请求和响应中的参数。 二、querystring模块常用方法 1. query…

    node js 2023年6月8日
    00
  • el-checkbox-group 的v-model无法绑定对象数组的问题解决

    el-checkbox-group 是 Element UI 中常用的多选框组件,它可以通过 v-model 来实现和数据的双向绑定。但是,有时候我们需要将多个多选框的选项值绑定到一个对象数组中,此时使用 v-model 绑定会出现一些问题,具体表现为无法正确绑定选中的多选框值到对象数组中。以下是解决该问题的完整攻略。 问题描述 当我们将 el-checkb…

    node js 2023年6月8日
    00
  • 详解原生js实现offset方法

    下面是详解“详解原生js实现offset方法”的完整攻略。 什么是offset方法 offset() 是 jQuery 中的一个方法,用于获取元素相对于文档的偏移量。而原生 JavaScript 没有提供类似的方法,所以我们需要自己实现它。 实现offset方法的基本思路 获取元素本身的left、top值 获取元素的 offsetParent 元素,不断循环…

    node js 2023年6月8日
    00
  • 基于html5和nodejs相结合实现websocket即使通讯

    HTML5和Node.js简介 HTML5是用于Web设计的新一代标准,支持本地存储、多媒体、拖放和各种新元素的引入。 Node.js是一个基于V8引擎的开源、跨平台的javascript运行环境,可以帮助我们使用javascript编写服务器端代码。 WebSocket的优势和使用场景 WebSocket是HTML5标准中的一个协议,它可以在浏览器和服务器…

    node js 2023年6月8日
    00
  • Nest.js散列与加密实例详解

    Nest.js散列与加密实例详解 本文将介绍如何在 Nest.js 中使用散列和加密,以保护密码和敏感数据的安全。 什么是散列和加密 散列 散列是一种将任意长度的二进制数据转换为固定长度的哈希值的过程。哈希值通常被用于验证数据的完整性和保密性。散列算法是单向的,这意味着哈希值无法转换回原始数据。 Nest.js 中常用的散列算法包括: bcrypt sha2…

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