介绍数据库操作
在Web应用开发中,数据库操作是必不可少的一部分。Node.js 提供了多种库来帮助我们进行数据库操作,其中最常用的是 mysql 和 mongodb。本章将详细介绍如何使用这些库进行数据库的增删改查操作。
MySQL 操作
安装 MySQL 驱动
首先,需要安装 MySQL 的驱动程序,可以使用 npm 来安装:
npm install mysql
连接数据库
连接到 MySQL 数据库的基本代码如下:
// www.javascriptcn.com code example
const mysql = require('mysql');
// 创建连接
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'my_db'
});
// 连接到 MySQL 数据库
connection.connect(err => {
if (err) throw err;
console.log("成功连接到数据库");
});执行查询
查询数据
查询数据库中的数据可以通过 connection.query 方法实现:
const query = "SELECT * FROM users WHERE id = ?";
const values = [1];
connection.query(query, values, (err, results) => {
if (err) throw err;
console.log(results);
});这里我们使用了占位符 ?,它能有效防止 SQL 注入攻击。
插入数据
插入新数据也非常简单:
const insertQuery = "INSERT INTO users (name, email) VALUES (?, ?)";
const insertValues = ['John Doe', 'john@example.com'];
connection.query(insertQuery, insertValues, (err, result) => {
if (err) throw err;
console.log(`新用户已添加,ID: ${result.insertId}`);
});更新数据
更新数据时,我们可以使用 UPDATE 语句:
const updateQuery = "UPDATE users SET name = ? WHERE id = ?";
const updateValues = ['Jane Doe', 1];
connection.query(updateQuery, updateValues, (err, result) => {
if (err) throw err;
console.log(`${result.changedRows} 行被更新`);
});删除数据
删除数据可以使用 DELETE 语句:
const deleteQuery = "DELETE FROM users WHERE id = ?";
const deleteValue = [1];
connection.query(deleteQuery, deleteValue, (err, result) => {
if (err) throw err;
console.log(`${result.affectedRows} 行被删除`);
});关闭数据库连接
完成所有操作后,记得关闭数据库连接:
connection.end();
MongoDB 操作
安装 MongoDB 驱动
首先,需要安装 MongoDB 的驱动程序:
npm install mongodb
连接 MongoDB
连接到 MongoDB 数据库的基本代码如下:
// www.javascriptcn.com code example
const { MongoClient } = require('mongodb');
const uri = "mongodb+srv://<username>:<password>@cluster0.mongodb.net/test?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
client.connect(err => {
const collection = client.db("test").collection("devices");
// 执行查询
client.close();
});执行查询
查询数据
查询 MongoDB 中的数据可以通过 find 方法实现:
// www.javascriptcn.com code example
client.connect(err => {
const collection = client.db("test").collection("devices");
collection.find({}).toArray((err, docs) => {
if (err) throw err;
console.log(docs);
client.close();
});
});插入数据
插入新数据也非常简单:
// www.javascriptcn.com code example
client.connect(err => {
const collection = client.db("test").collection("devices");
const doc = { name: "John Doe", email: "john@example.com" };
collection.insertOne(doc, (err, result) => {
if (err) throw err;
console.log("文档已插入");
client.close();
});
});更新数据
更新数据时,可以使用 updateOne 或 updateMany 方法:
// www.javascriptcn.com code example
client.connect(err => {
const collection = client.db("test").collection("devices");
const filter = { name: "John Doe" };
const updateDoc = {
$set: {
name: "Jane Doe"
}
};
collection.updateOne(filter, updateDoc, (err, res) => {
if (err) throw err;
console.log("文档已更新");
client.close();
});
});删除数据
删除数据可以使用 deleteOne 或 deleteMany 方法:
// www.javascriptcn.com code example
client.connect(err => {
const collection = client.db("test").collection("devices");
const filter = { name: "Jane Doe" };
collection.deleteOne(filter, (err, obj) => {
if (err) throw err;
console.log("文档已删除");
client.close();
});
});以上就是使用 Node.js 执行数据库查询的基本方法。通过这些基本操作,你可以构建更复杂的应用逻辑,包括事务处理、索引管理等高级功能。