21xrx.com
2024-11-05 14:59:18 Tuesday
登录
文章检索 我的文章 写文章
Node.js如何连接MySQL数据库
2023-07-05 20:42:22 深夜i     --     --
Node js MySQL 连接 数据库

Node.js是一种流行的后端技术,它使用JavaScript作为编程语言,并提供了许多强大的功能,例如非阻塞I/O和事件驱动编程。当需要操作数据库时,Node.js也提供了多种连接数据库的方式,并支持多种数据库。本文将介绍如何使用Node.js连接MySQL数据库。

1. 安装MySQL模块

Node.js提供了许多第三方模块,可以方便地连接和操作数据库。在连接MySQL数据库之前,需要先安装相关的MySQL模块。使用npm命令可以安装模块,具体命令如下:


npm install mysql

2. 连接MySQL数据库

安装完成后,就可以开始连接MySQL数据库了。在Node.js中,通过创建一个MySQL连接对象来建立与数据库的连接。具体代码如下:


const mysql = require('mysql');

const connection = mysql.createConnection(

  host: 'localhost');

connection.connect((err) => {

  if (err) {

    console.error('Failed to connect to database');

  } else {

    console.log('Connected to database');

  }

});

上述代码首先使用require语句导入了mysql模块。然后,使用createConnection方法创建了一个MySQL连接对象,并设置了连接数据库的相关参数,例如主机名、用户名、密码和数据库名。最后,调用connect方法与数据库建立连接。

连接建立后,如果连接成功,会输出Connected to database;如果连接失败,会输出Failed to connect to database。连接成功后才能进行后续的数据库操作。

3. 执行查询语句

连接成功后,就可以执行查询语句了。在Node.js中,可以使用query方法来执行查询语句。具体代码如下:


const sql = 'SELECT * FROM users';

connection.query(sql, (err, results, fields) => {

  if (err) {

    console.error(err);

  } else {

    console.log(results);

  }

});

上述代码中,先定义了一个查询语句sql,查询users表中的所有数据。然后,使用query方法执行该查询语句,并将查询结果存储在results变量中。如果查询失败,会输出错误信息;如果查询成功,会输出查询结果。

4. 执行更新语句

除了查询语句,还可以使用Node.js执行更新语句。更新语句通常用于插入、更新或删除数据。具体代码如下:


const sql = 'INSERT INTO users(name, age) VALUES (?, ?)';

const values = ['Tom', 20];

connection.query(sql, values, (err, results, fields) => {

  if (err) {

    console.error(err);

  } else {

    console.log('Insert successfully');

  }

});

上述代码中,定义了一个插入数据的更新语句,插入一个名为Tom、年龄为20的用户记录。使用?占位符来代替真正的值,然后将实际值存储在values数组中。使用query方法执行该更新语句,并将实际值传入query方法中。如果更新失败,会输出错误信息;如果更新成功,会输出插入成功的信息。

5. 关闭连接

在与数据库进行交互后,需要关闭与数据库的连接。使用end方法关闭连接。代码如下:


connection.end();

上述代码通过调用end方法来关闭与数据库的连接。

总结

本文介绍了如何使用Node.js连接MySQL数据库。首先,使用npm命令安装mysql模块;然后,使用createConnection方法创建一个MySQL连接对象,并使用connect方法连接数据库;接着,使用query方法执行查询语句或更新语句;最后,使用end方法关闭与数据库的连接。使用Node.js连接MySQL数据库可以方便地进行数据库的操作,提高开发效率。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复