Maison  >  Article  >  base de données  >  Comment développer une API CRUD simple à l'aide de MongoDB

Comment développer une API CRUD simple à l'aide de MongoDB

王林
王林original
2023-09-19 12:32:001033parcourir

如何使用MongoDB开发一个简单的 CRUD API

Comment développer une API CRUD simple à l'aide de MongoDB

Dans le développement d'applications Web modernes, les opérations CRUD (Créer, Supprimer, Modifier, Vérifier) ​​sont l'une des fonctions les plus courantes et les plus importantes. Dans cet article, nous présenterons comment développer une API CRUD simple à l'aide de la base de données MongoDB et fournirons des exemples de code spécifiques.

MongoDB est une base de données NoSQL open source qui stocke les données sous forme de documents. Contrairement aux bases de données relationnelles traditionnelles, MongoDB n'a pas de schéma prédéfini, ce qui rend le stockage et les requêtes de données plus flexibles. MongoDB est donc idéal pour stocker et traiter de grandes quantités de données non structurées.

Avant de développer l'API CRUD, nous devons nous assurer que MongoDB a été installé et configuré correctement. Vous pouvez télécharger et installer la dernière version de MongoDB à partir du site officiel de MongoDB et la configurer selon le guide officiel.

Ensuite, nous développerons notre API CRUD en utilisant Node.js et Express.js. Assurez-vous que Node.js est installé et que vous êtes familier avec le développement de base de Node.js et Express.js. Commençons !

Étape 1 : Initialisation du projet
Tout d'abord, créez un nouveau projet Node.js et initialisez le fichier package.json. Exécutez la commande suivante dans la ligne de commande :

$ mkdir crud-api
$ cd crud-api
$ npm init -y

Cela créera un nouveau répertoire appelé crud-api et y initialisera un nouveau projet Node.js. L'option -y créera un fichier package.json en utilisant les paramètres par défaut. crud-api的新目录,并在其中初始化一个新的Node.js项目。-y选项将使用默认设置创建package.json文件。

第二步:安装依赖项
我们将使用一些npm包来帮助我们开发CRUD API。在命令行中执行以下命令来安装依赖项:

$ npm install express body-parser mongoose

这会使用npm安装expressbody-parsermongoose三个包。express是一个流行的Node.js框架,body-parser是一个解析请求体的中间件,mongoose是用于与MongoDB数据库交互的对象模型工具。

第三步:创建服务器和路由
在项目的根目录下,创建server.js文件,并添加以下代码:

const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');

const app = express();
const port = 3000;

// 连接MongoDB数据库
mongoose.connect('mongodb://localhost:27017/crud-api', { useNewUrlParser: true });
const db = mongoose.connection;
db.on('error', console.error.bind(console, '数据库连接失败:'));
db.once('open', () => {
  console.log('数据库连接成功!');
});

// 设置路由
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

app.get('/', (req, res) => {
  res.send('欢迎使用CRUD API');
});

// 启动服务器
app.listen(port, () => {
  console.log('服务器已启动,端口号:' + port);
});

这段代码首先引入所需的npm包,然后创建一个Express应用程序并设置服务器端口为3000。之后,我们使用mongoose.connect()方法连接到MongoDB数据库。请确保MongoDB服务运行在本地机器的默认端口27017上。接下来,我们设置了一个主要用于测试的根路由。最后,我们使用app.listen()方法启动服务器并监听3000端口。

第四步:定义模型和路由
我们将创建一个名为product的简单数据库模型,并编写对应的CRUD路由。在server.js文件中添加以下代码:

const Product = require('./models/product');

// 查询所有产品
app.get('/api/products', (req, res) => {
  Product.find({}, (err, products) => {
    if (err) {
      res.status(500).send('查询数据库出错!');
    } else {
      res.json(products);
    }
  });
});

// 查询单个产品
app.get('/api/products/:id', (req, res) => {
  Product.findById(req.params.id, (err, product) => {
    if (err) {
      res.status(500).send('查询数据库出错!');
    } else if (!product) {
      res.status(404).send('找不到产品!');
    } else {
      res.json(product);
    }
  });
});

// 创建新产品
app.post('/api/products', (req, res) => {
  const newProduct = new Product(req.body);
  newProduct.save((err, product) => {
    if (err) {
      res.status(500).send('保存到数据库出错!');
    } else {
      res.json(product);
    }
  });
});

// 更新产品
app.put('/api/products/:id', (req, res) => {
  Product.findByIdAndUpdate(req.params.id, req.body, { new: true }, (err, product) => {
    if (err) {
      res.status(500).send('更新数据库出错!');
    } else if (!product) {
      res.status(404).send('找不到产品!');
    } else {
      res.json(product);
    }
  });
});

// 删除产品
app.delete('/api/products/:id', (req, res) => {
  Product.findByIdAndRemove(req.params.id, (err, product) => {
    if (err) {
      res.status(500).send('删除数据库出错!');
    } else if (!product) {
      res.status(404).send('找不到产品!');
    } else {
      res.send('产品删除成功!');
    }
  });
});

在这段代码中,我们首先引入Product模型,该模型是一个基于mongoose.Schema的简单MongoDB模型。然后,我们定义了用于查询所有产品、查询单个产品、创建新产品、更新产品和删除产品的路由。在每个路由中,我们都使用相应的mongoose方法来与MongoDB数据库交互,并根据返回结果发送合适的响应。

第五步:定义模型
在项目的根目录下,创建一个models目录并在其中创建product.js文件。在product.js文件中添加以下代码:

const mongoose = require('mongoose');

const productSchema = new mongoose.Schema({
  name: String,
  price: Number,
  description: String
});

const Product = mongoose.model('Product', productSchema);

module.exports = Product;

这段代码定义了一个简单的产品模型Product,它有一个名为name的字符串属性,一个名为price的数字属性和一个名为description的字符串属性。将productSchema模型作为参数传递给mongoose.model()方法并导出Product

第六步:运行服务器
在项目的根目录下,通过以下命令来运行服务器:

$ node server.js

如果一切顺利,你将会在命令行中看到成功连接到数据库和服务器已启动的消息。现在,你可以在浏览器或Postman中访问API的不同路由,如:http://localhost:3000/api/products

Étape 2 : Installer les dépendances

Nous utiliserons certains packages npm pour nous aider à développer l'API CRUD. Exécutez la commande suivante dans la ligne de commande pour installer les dépendances :
rrreee

Cela utilisera npm pour installer express, body-parser et mongoose Bag . express est un framework Node.js populaire, body-parser est un middleware qui analyse le corps de la requête et mongoose est utilisé avec la base de données MongoDB. Outil de modèle d'objet interactif. 🎜🎜Étape 3 : Créer le serveur et le routage🎜Dans le répertoire racine du projet, créez le fichier server.js et ajoutez le code suivant : 🎜rrreee🎜Ce code introduit d'abord le package npm requis, puis créez une application Express et définissez le port du serveur sur 3000. Après cela, nous utilisons la méthode mongoose.connect() pour nous connecter à la base de données MongoDB. Veuillez vous assurer que le service MongoDB s'exécute sur le port par défaut 27017 de la machine locale. Ensuite, nous avons mis en place une route racine principalement à des fins de test. Enfin, nous utilisons la méthode app.listen() pour démarrer le serveur et écouter sur le port 3000. 🎜🎜Étape 4 : Définir le modèle et le routage🎜Nous allons créer un modèle de base de données simple nommé product et écrire la route CRUD correspondante. Ajoutez le code suivant dans le fichier server.js : 🎜rrreee🎜Dans ce code, nous introduisons d'abord le modèle Product, qui est un modèle basé sur mongoose. Modèle MongoDB simple de Schema . Nous avons ensuite défini des itinéraires pour interroger tous les produits, interroger un seul produit, créer un nouveau produit, mettre à jour un produit et supprimer un produit. Dans chaque itinéraire, nous utilisons la méthode mongoose correspondante pour interagir avec la base de données MongoDB et envoyer des réponses appropriées en fonction des résultats renvoyés. 🎜🎜Étape 5 : Définir le modèle🎜Dans le répertoire racine du projet, créez un répertoire models et créez-y le fichier product.js. Ajoutez le code suivant dans le fichier product.js : 🎜rrreee🎜Ce code définit un modèle de produit simple Product, qui a un nom name Une propriété de chaîne nommé <code>price et une propriété de chaîne nommée description. Passez le modèle productSchema en tant que paramètre à la méthode mongoose.model() et exportez le Product. 🎜🎜Étape 6 : Exécutez le serveur 🎜Dans le répertoire racine du projet, exécutez le serveur via la commande suivante : 🎜rrreee🎜Si tout se passe bien, vous verrez le message indiquant que la base de données a été connectée avec succès et que le serveur a été démarré dans la ligne de commande. Désormais, vous pouvez accéder aux différentes routes de l'API dans un navigateur ou Postman, comme par exemple : http://localhost:3000/api/products. 🎜🎜Résumé🎜Avec MongoDB et Node.js, nous pouvons facilement développer une API CRUD simple. Dans cet article, nous avons appris à créer une API CRUD simple à l'aide d'une base de données MongoDB, Node.js et le framework Express.js, et avons fourni des exemples de code spécifiques. Avec une compréhension plus approfondie de MongoDB et Node.js, vous pouvez étendre et personnaliser votre API en fonction de vos besoins réels. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn