Node.js 与数据库:利用 MongoDB 构建一个简单的 CRUD 应用 ...

打印 上一主题 下一主题

主题 903|帖子 903|积分 2709

Node.js 与数据库:利用 MongoDB 构建一个简单的 CRUD 应用


目次


  • 弁言:为什么选择 MongoDB 与 Node.js?
  • 情况搭建

    • 安装 Node.js
    • 安装 MongoDB

  • 创建 Node.js 项目
  • 集成 MongoDB 到 Node.js 应用
  • CRUD 操纵实现

    • 创建数据
    • 读取数据
    • 更新数据
    • 删除数据

  • 总结

1. 弁言:为什么选择 MongoDB 与 Node.js?

Node.js 是一个基于变乱驱动、非阻塞式 I/O 模型的高效应用开辟平台,特别实用于构建高并发的应用。而 MongoDB 是一个基于文档存储的 NoSQL 数据库,能够机动地存储布局化和非布局化的数据,非常适合与 Node.js 一起利用,尤其是在开辟需要快速原型的应用时。MongoDB 的文档模型非常适合动态和频仍变化的数据布局,与 Node.js 的异步特性完美契合。
在这篇教程中,我们将利用 Node.js 与 MongoDB 搭建一个简单的 CRUD(增删改查)应用,帮助你相识如何将两者结合利用。

2. 情况搭建

安装 Node.js

起首,需要确保系统中安装了 Node.js。可以从 Node.js 官网 下载并安装 Node.js。
在终端中运行以下下令来查抄 Node.js 是否安装乐成:
  1. node -v
  2. npm -v
复制代码
安装 MongoDB

你可以选择当地安装 MongoDB 或利用 MongoDB Atlas(云端数据库)。我们以当地安装为例。

  • Windows 用户可以通过 MongoDB 官网 下载并安装 MongoDB。
  • macOS 用户可以通过 Homebrew 安装 MongoDB:
    1. brew tap mongod
    2. b/brew
    3. brew install mongod
    4. b-community@5.0
    复制代码
安装完 MongoDB 后,启动数据库:
  1. mongod
复制代码
MongoDB 会在默认端口 27017 上运行。

3. 创建 Node.js 项目

接下来,我们来创建一个简单的 Node.js 项目。
步调 1:初始化项目

在你想要创建项目标文件夹中,打开终端并运行以下下令来初始化一个新的 Node.js 项目:
  1. mkdir node-mongo-crud
  2. cd node-mongo-crud
  3. npm init -y
复制代码
步调 2:安装依靠

我们需要安装一些依靠,包罗 express(用于搭建服务器)和 mongoose(用于与 MongoDB 进行交互):
  1. npm install express mongoose
复制代码

4. 集成 MongoDB 到 Node.js 应用

步调 1:创建一个简单的服务器

在项目根目次下创建一个 server.js 文件,编写基础的 Node.js 服务器代码:
  1. const express = require('express');const mongoose = require('mongoose');// 创建 Express 应用const app = express();// 毗连到 MongoDBmongoose.connect('mongod
  2. b://localhost:27017/crudApp', {    useNewUrlParser: true,    useUnifiedTopology: true}).then(() => {    console.log("MongoDB connected successfully");}).catch(err => {    console.log("MongoDB connection error:", err);});// 启动服务器app.listen(3000, () => {    console.log("Server is running on http://localhost:3000");});
复制代码
步调 2:创建一个 MongoDB 模型

在项目中创建一个 models 文件夹,并在其中创建一个 User.js 文件来界说数据模型。我们将创建一个简单的用户模型,包罗 name 和 email 字段。
  1. const mongoose = require('mongoose');
  2. // 定义用户模型
  3. const userSchema = new mongoose.Schema({
  4.     name: { type: String, required: true },
  5.     email: { type: String, required: true, unique: true }
  6. });
  7. // 创建模型
  8. const User = mongoose.model('User', userSchema);
  9. module.exports = User;
复制代码

5. CRUD 操纵实现

创建数据(Create)

我们来实现一个 POST 路由来创建新用户。
  1. app.use(express.json());  // 中间件,解析请求体中的 JSON 数据
  2. const User = require('./models/User');
  3. // 创建用户
  4. app.post('/users', async (req, res) => {
  5.     try {
  6.         const { name, email } = req.body;
  7.         const newUser = new User({ name, email });
  8.         await newUser.save();
  9.         res.status(201).json(newUser);
  10.     } catch (error) {
  11.         res.status(400).json({ error: error.message });
  12.     }
  13. });
复制代码
读取数据(Read)

接下来,我们实现一个 GET 路由来获取所有效户。
  1. // 获取所有用户
  2. app.get('/users', async (req, res) => {
  3.     try {
  4.         const users = await User.find();
  5.         res.status(200).json(users);
  6.     } catch (error) {
  7.         res.status(400).json({ error: error.message });
  8.     }
  9. });
复制代码
如果需要获取单个用户的具体信息,可以利用如下路由:
  1. // 获取单个用户
  2. app.get('/users/:id', async (req, res) => {
  3.     try {
  4.         const user = await User.findById(req.params.id);
  5.         if (!user) {
  6.             return res.status(404).json({ error: 'User not found' });
  7.         }
  8.         res.status(200).json(user);
  9.     } catch (error) {
  10.         res.status(400).json({ error: error.message });
  11.     }
  12. });
复制代码
更新数据(Update)

实现一个 PUT 路由来更新用户信息:
  1. // 更新用户
  2. app.put('/users/:id', async (req, res) => {
  3.     try {
  4.         const { name, email } = req.body;
  5.         const updatedUser = await User.findByIdAndUpdate(req.params.id, { name, email }, { new: true });
  6.         if (!updatedUser) {
  7.             return res.status(404).json({ error: 'User not found' });
  8.         }
  9.         res.status(200).json(updatedUser);
  10.     } catch (error) {
  11.         res.status(400).json({ error: error.message });
  12.     }
  13. });
复制代码
删除数据(Delete)

实现一个 DELETE 路由来删除用户:
  1. // 删除用户
  2. app.delete('/users/:id', async (req, res) => {
  3.     try {
  4.         const deletedUser = await User.findByIdAndDelete(req.params.id);
  5.         if (!deletedUser) {
  6.             return res.status(404).json({ error: 'User not found' });
  7.         }
  8.         res.status(200).json({ message: 'User deleted successfully' });
  9.     } catch (error) {
  10.         res.status(400).json({ error: error.message });
  11.     }
  12. });
复制代码

6. 总结

在本教程中,我们利用 Node.js 和 MongoDB 构建了一个简单的 CRUD 应用。通过 express 搭建 HTTP 服务器,利用 mongoose 毗连和操纵 MongoDB 数据库,我们实现了创建、读取、更新和删除数据的功能。
通过本项目,你不仅相识了如何将 MongoDB 与 Node.js 集成,还掌握了如那里理数据库的常见操纵。你可以根据需要扩展和优化此应用,例如添加数据验证、分页功能、错误处理等。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

卖不甜枣

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表