第2课_服务器搭建与MongoDB
热度🔥:29 免费课程
授课语音
案例:搭建Node.js服务器及创建MongoDB数据库
在本课中,我们将通过一个实例学习如何使用Node.js搭建一个简单的服务器,并与MongoDB进行集成。通过这个案例,学员将掌握如何创建一个Node.js服务器,如何与MongoDB数据库进行连接,以及如何使用MongoDB存取数据。
1. 环境准备
在开始之前,确保已经安装以下工具:
- Node.js:用于运行JavaScript代码的服务器端环境。
- MongoDB:一个NoSQL数据库,用于存储数据。
- MongoDB Atlas(可选):云数据库服务,便于在线创建MongoDB数据库。
- npm:Node.js的包管理工具,用于安装依赖。
2. 创建Node.js项目
2.1 初始化Node.js项目
打开终端,进入到项目目录并初始化Node.js项目:
mkdir node-mongo-example
cd node-mongo-example
npm init -y # 初始化项目并生成package.json
2.2 安装依赖
为了与MongoDB进行交互,需要安装mongoose
,它是一个MongoDB的对象建模工具。
npm install mongoose express
- mongoose:用于简化Node.js与MongoDB的交互。
- express:轻量级的Web框架,用于创建Node.js服务器。
3. 搭建Node.js服务器
3.1 创建基本的Express服务器
在项目根目录下创建一个名为server.js
的文件,用于配置Node.js服务器。
// 导入express模块
const express = require('express');
// 创建Express应用
const app = express();
// 设置服务器端口
const PORT = 3000;
// 设置路由
app.get('/', (req, res) => {
res.send('Hello, Node.js with MongoDB!');
});
// 启动服务器
app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
});
代码解读:
express()
:创建一个Express应用实例。app.get()
:定义一个GET请求路由,当访问根路径时,返回字符串Hello, Node.js with MongoDB!
。app.listen()
:启动服务器并监听指定端口。
3.2 启动服务器
运行以下命令启动服务器:
node server.js
访问http://localhost:3000
,浏览器应显示“Hello, Node.js with MongoDB!”
4. 创建MongoDB数据库
4.1 连接MongoDB
在server.js
中添加MongoDB的连接代码,使用mongoose
连接到MongoDB数据库。
// 导入mongoose模块
const mongoose = require('mongoose');
// 连接MongoDB数据库
mongoose.connect('mongodb://localhost:27017/mydatabase', {
useNewUrlParser: true, // 使用新的URL解析器
useUnifiedTopology: true // 使用统一的拓扑结构
})
.then(() => {
console.log('MongoDB连接成功');
})
.catch((error) => {
console.error('MongoDB连接失败', error);
});
代码解读:
mongoose.connect()
:用于连接MongoDB数据库,参数是MongoDB的连接字符串。localhost:27017
是默认的本地MongoDB地址,mydatabase
是数据库的名称。useNewUrlParser
和useUnifiedTopology
:这些选项用于确保使用新的解析器和拓扑结构,避免一些老版本MongoDB驱动的警告。.then()
:如果连接成功,输出MongoDB连接成功
。.catch()
:如果连接失败,输出错误信息。
4.2 创建数据模型
为了能够操作数据库,我们需要定义一个数据模型。例如,创建一个用于保存用户信息的模型。
// 定义用户数据模型
const userSchema = new mongoose.Schema({
name: { type: String, required: true }, // 用户名,必填
email: { type: String, required: true, unique: true }, // 用户邮箱,必填且唯一
age: { type: Number, required: true }, // 用户年龄,必填
});
// 创建用户模型
const User = mongoose.model('User', userSchema);
代码解读:
userSchema
:使用mongoose.Schema
定义用户的数据结构,包括name
、email
和age
字段。mongoose.model()
:将数据模型与MongoDB中的users
集合关联。
5. 创建和获取用户数据
5.1 创建用户
添加一个路由,允许用户通过POST
请求创建新用户。
// 导入express的body-parser中间件,用于解析请求体
const bodyParser = require('body-parser');
app.use(bodyParser.json()); // 解析JSON格式的请求体
// 创建用户路由
app.post('/user', (req, res) => {
const { name, email, age } = req.body;
const newUser = new User({
name,
email,
age
});
newUser.save()
.then((user) => {
res.status(201).json(user);
})
.catch((error) => {
res.status(400).json({ message: '用户创建失败', error });
});
});
代码解读:
bodyParser.json()
:该中间件用于解析JSON格式的请求体。app.post()
:定义一个POST请求路由,用于接收用户数据并创建新用户。new User()
:根据请求体数据创建一个新的用户实例。newUser.save()
:保存新用户到数据库。
5.2 获取所有用户
添加一个路由,允许用户通过GET
请求获取所有用户的信息。
// 获取所有用户路由
app.get('/users', (req, res) => {
User.find()
.then((users) => {
res.status(200).json(users);
})
.catch((error) => {
res.status(500).json({ message: '获取用户失败', error });
});
});
代码解读:
User.find()
:查询数据库中的所有用户。.then()
:查询成功后返回用户数据。.catch()
:查询失败时返回错误信息。
6. 总结
- 搭建Node.js服务器:通过Express框架创建了一个基本的Web服务器。
- 连接MongoDB:使用
mongoose
模块连接到本地MongoDB数据库,并定义了一个用户数据模型。 - 数据操作:通过
POST
请求创建新用户,通过GET
请求获取所有用户。
通过这个实例,学员可以了解如何在Node.js中搭建服务器并与MongoDB进行集成,实现数据的增删改查操作。