17 Node.js小白教程系列

在上一篇文章中,我们探讨了如何在 Node.js 应用中创建路由与中间件,为我们后续的数据库操作打下了基础。这一篇,我们将重点关注如何连接 MongoDB 数据库,了解基本的 MongoDB 操作,并通过案例进行展示。

MongoDB 简介

MongoDB 是一个以文档为导向的 NoSQL 数据库,使用 BSON 格式存储数据,能够为应用提供高性能、高可扩展性和灵活的数据模型。在与 Node.js 集成时,MongoDB 的非关系型特性让我们能够更灵活地处理数据。

准备工作

在开始连接 MongoDB 之前,我们需要做一些准备:

  1. 安装 MongoDB:如果你尚未安装 MongoDB,可以在 MongoDB 官网 下载并安装最新版本。

  2. 安装依赖:在我们 Node.js 项目中,我们需要安装 mongoose,它是一个 MongoDB 的对象建模工具,提供了很高的灵活性与易用性。使用以下命令在项目根目录下安装:

    1
    npm install mongoose
  3. 启动 MongoDB 服务:确保你的 MongoDB 服务正在运行,通常可以通过终端命令 mongod 启动 MongoDB。

连接 MongoDB

接下来,我们将在 Node.js 应用中进行 MongoDB 的连接:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 导入 mongoose
const mongoose = require('mongoose');

// 连接 MongoDB
mongoose.connect('mongodb://localhost:27017/mydatabase', {
useNewUrlParser: true,
useUnifiedTopology: true
});

// 连接成功
mongoose.connection.on('connected', () => {
console.log('MongoDB connected successfully!');
});

// 连接失败
mongoose.connection.on('error', (err) => {
console.error(`MongoDB connection error: ${err}`);
});

在上面的代码中,我们使用 mongoose.connect() 方法连接到 MongoDB 的本地实例,连接数据库 mydatabase。通过监听 connectederror 事件,我们可以知道连接状态。

创建数据模型

连接成功后,我们需要定义一个数据模型。模型用来描述数据的结构和行为。下面是一个简单的用户模型示例:

1
2
3
4
5
6
7
8
9
// 定义用户模型
const userSchema = new mongoose.Schema({
name: { type: String, required: true },
email: { type: String, required: true, unique: true },
age: { type: Number, min: 0 }
});

// 创建模型
const User = mongoose.model('User', userSchema);

在这个例子中,我们定义了一个名为 User 的模型,它包含 nameemailage 三个字段。nameemail 字段是必填的,而 email 字段是唯一的。

数据库操作示例

现在,我们将通过一些基本操作来展示如何与 MongoDB 进行交互,包括创建、查询和删除用户。

创建用户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 创建新用户
const createUser = async () => {
const newUser = new User({
name: 'Alice',
email: 'alice@example.com',
age: 25
});

try {
const savedUser = await newUser.save();
console.log(`User created: ${savedUser}`);
} catch (err) {
console.error(`Error creating user: ${err}`);
}
};

createUser();

在上面的代码中,我们创建了一个新用户,并将其保存到 MongoDB 数据库中。通过 await newUser.save() 来等待保存过程的完成。

查询用户

1
2
3
4
5
6
7
8
9
10
11
12
// 查询用户
const findUser = async (email) => {
try {
const user = await User.findOne({ email: email });
console.log(`User found: ${user}`);
} catch (err) {
console.error(`Error finding user: ${err}`);
}
};

// 调用查询函数
findUser('alice@example.com');

在这个示例中,我们尝试根据 email 查询用户。如果用户存在,就会返回用户的信息。

删除用户

1
2
3
4
5
6
7
8
9
10
11
12
// 删除用户
const deleteUser = async (email) => {
try {
const result = await User.deleteOne({ email: email });
console.log(`User deleted: ${result.deletedCount} record(s)`);
} catch (err) {
console.error(`Error deleting user: ${err}`);
}
};

// 调用删除函数
deleteUser('alice@example.com');

这里,我们根据 email 删除用户,并打印出删除操作的结果。

总结

通过以上步骤,我们成功地连接了 MongoDB,并进行了基本的 CRUD(创建、读取、更新、删除)操作。借助 mongoose,我们可以轻松地与 MongoDB 互动,为我们的 Node.js 应用提供强大的数据处理能力。

在下一篇文章中,我们将探讨如何使用 Sequelize 操作关系型数据库。做好准备,让我们继续前进!

17 Node.js小白教程系列

https://zglg.work/node-js-you-need/17/

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论