安装MySQL驱动
在使用Node.js连接MySQL数据库之前,需要安装一个MySQL驱动。这个驱动是用于Node.js应用程序与MySQL数据库之间进行通信的桥梁。
要安装这个驱动,你可以使用npm(Node.js包管理器)。打开命令行工具,然后输入以下命令:
npm install mysql
这个命令会自动下载并安装最新版本的mysql驱动。如果你需要安装特定版本的驱动,可以在命令后面添加相应的版本号,例如:
npm install mysql@2.18.1
连接到MySQL数据库
安装完MySQL驱动之后,我们就可以开始创建一个连接到MySQL数据库的应用程序了。
首先,我们需要引入mysql
模块,并使用它来创建一个连接对象。下面是一个简单的例子:
-- -------------------- ---- ------- ----- ----- - ----------------- -- ------------- ----- ---------- - ------------------------ ----- ------------ ----- --------------- --------- --------------- --------- -------------- --- -- ----------- ------------------------ -- - -- ------- ----- ------ ---------------------- -- ----- ------------ ---
在这个例子中,我们使用了createConnection()
方法来创建一个连接对象,并通过传递一个配置对象来指定数据库的地址、用户名、密码以及数据库名称。
然后,我们调用了connect()
方法来尝试建立与数据库的连接。如果连接成功,将会打印出一条消息。
执行SQL查询
一旦我们建立了与数据库的连接,就可以执行各种SQL查询了。我们可以使用query()
方法来发送SQL语句到数据库服务器。
下面是一个基本的例子,展示了如何使用query()
方法来获取数据:
connection.query('SELECT * FROM users', (error, results, fields) => { if (error) throw error; console.log(results); });
在这个例子中,我们发送了一个SELECT
语句来从users
表中选择所有的记录。当查询完成时,query()
方法会调用一个回调函数,该函数接收三个参数:错误对象、结果集和字段信息。
如果查询过程中发生了错误,那么error
参数将包含错误信息。否则,results
参数将包含查询返回的所有行的数据。
插入数据
除了读取数据之外,我们还可以向数据库中插入新的数据。这可以通过发送INSERT
语句来实现。
下面的例子展示了如何向users
表中插入一条新记录:
const sql = 'INSERT INTO users SET ?'; const user = { name: 'John Doe', email: 'john.doe@example.com' }; connection.query(sql, user, (error, results) => { if (error) throw error; console.log('User inserted with ID:', results.insertId); });
在这个例子中,我们定义了一个SQL语句和一个用户对象。然后,我们调用了query()
方法,将这两个参数传递给它。这样做的好处是,mysql
驱动会自动处理SQL注入问题。
回调函数接收两个参数:一个是错误对象,另一个是结果对象。结果对象中的insertId
属性包含了新插入记录的ID值。
更新数据
更新数据库中的现有记录也是常见的操作之一。这可以通过发送UPDATE
语句来实现。
下面的例子展示了如何更新users
表中某条记录的信息:
const sql = 'UPDATE users SET email = ? WHERE id = ?'; const email = 'new.email@example.com'; const id = 1; connection.query(sql, [email, id], (error, results) => { if (error) throw error; console.log('Number of records updated:', results.affectedRows); });
在这个例子中,我们定义了一个SQL语句和两个参数:新的电子邮件地址和要更新的用户的ID。然后,我们将这些参数作为数组传递给query()
方法。
回调函数接收两个参数:一个是错误对象,另一个是结果对象。结果对象中的affectedRows
属性包含了受影响的行数。
删除数据
最后,删除数据库中的记录也可以通过发送DELETE
语句来实现。
下面的例子展示了如何从users
表中删除一条记录:
const sql = 'DELETE FROM users WHERE id = ?'; const id = 1; connection.query(sql, id, (error, results) => { if (error) throw error; console.log('Number of records deleted:', results.affectedRows); });
在这个例子中,我们定义了一个SQL语句和一个参数:要删除的用户的ID。然后,我们将这个参数传递给query()
方法。
回调函数接收两个参数:一个是错误对象,另一个是结果对象。结果对象中的affectedRows
属性包含了被删除的行数。
关闭连接
当我们完成了所有操作后,记得关闭数据库连接。这可以通过调用end()
方法来实现:
connection.end(error => { if (error) throw error; console.log('Connection closed'); });
这个方法会立即释放底层连接,并确保所有未决的查询都已正确地完成或取消。如果在关闭连接时发生任何错误,这些错误将在回调函数中被捕获。
以上就是使用Node.js连接和操作MySQL数据库的基本步骤。希望这些示例对你有所帮助!