Rumah >pangkalan data >MongoDB >Bagaimana untuk membangunkan API CRUD mudah menggunakan MongoDB

Bagaimana untuk membangunkan API CRUD mudah menggunakan MongoDB

王林
王林asal
2023-09-19 12:32:001103semak imbas

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

Cara menggunakan MongoDB untuk membangunkan API CRUD yang mudah

Dalam pembangunan aplikasi web moden, CRUD (tambah, padam, ubah suai, semak) operasi adalah Salah satu fungsi yang sangat biasa dan penting. Dalam artikel ini, kami akan memperkenalkan cara membangunkan API CRUD mudah menggunakan pangkalan data MongoDB dan menyediakan contoh kod khusus.

MongoDB ialah pangkalan data NoSQL sumber terbuka yang menyimpan data dalam bentuk dokumen. Tidak seperti pangkalan data hubungan tradisional, MongoDB tidak mempunyai skema yang telah ditetapkan, yang menjadikan penyimpanan data dan pertanyaan lebih fleksibel. Oleh itu, MongoDB sesuai untuk menyimpan dan memproses sejumlah besar data tidak berstruktur.

Sebelum membangunkan API CRUD, kita perlu memastikan bahawa MongoDB telah dipasang dan dikonfigurasikan dengan betul. Anda boleh memuat turun dan memasang versi terkini MongoDB dari laman web rasmi MongoDB dan konfigurasikannya mengikut panduan rasmi.

Seterusnya, kami akan menggunakan Node.js dan Express.js untuk membangunkan API CRUD kami. Pastikan anda memasang Node.js dan biasa dengan pembangunan Node.js dan Express.js asas. Mari mulakan!

Langkah Pertama: Permulaan Projek
Pertama, buat projek Node.js baharu dan mulakan fail package.json. Jalankan arahan berikut dalam baris arahan:

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

Ini akan mencipta direktori baharu yang dipanggil crud-api dan memulakan projek Node.js baharu di dalamnya. Pilihan -y akan membuat fail package.json menggunakan tetapan lalai. 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

Langkah 2: Pasang kebergantungan

Kami akan menggunakan beberapa pakej npm untuk membantu kami membangunkan API CRUD. Jalankan arahan berikut pada baris arahan untuk memasang dependensi:
rrreee

Ini akan memasang express, body-parser dan mongoose menggunakan npm Tiga pakej. express ialah rangka kerja Node.js yang popular, body-parser ialah perisian tengah yang menghuraikan isi permintaan dan mongoose digunakan dengan pangkalan data MongoDB Alat model objek interaktif. #🎜🎜##🎜🎜#Langkah 3: Buat pelayan dan laluan #🎜🎜#Dalam direktori akar projek, buat fail server.js dan tambah kod berikut: #🎜🎜# rrreee #🎜🎜#Kod ini mula-mula memperkenalkan pakej npm yang diperlukan, kemudian mencipta aplikasi Express dan menetapkan port pelayan kepada 3000. Selepas itu, kami menggunakan kaedah mongoose.connect() untuk menyambung ke pangkalan data MongoDB. Sila pastikan bahawa perkhidmatan MongoDB berjalan pada port lalai 27017 mesin tempatan. Seterusnya, kami menyediakan laluan akar terutamanya untuk ujian. Akhir sekali, kami menggunakan kaedah app.listen() untuk memulakan pelayan dan mendengar pada port 3000. #🎜🎜##🎜🎜#Langkah 4: Tentukan model dan laluan #🎜🎜#Kami akan mencipta model pangkalan data ringkas bernama produk dan menulis laluan CRUD yang sepadan. Tambahkan kod berikut dalam fail server.js: #🎜🎜#rrreee#🎜🎜#Dalam kod ini, kami mula-mula memperkenalkan model Product, yang berdasarkan A model MongoDB ringkas untuk mongoose.Schema. Kami kemudiannya menentukan laluan untuk menanyakan semua produk, menanyakan satu produk, mencipta produk baharu, mengemas kini produk dan memadamkan produk. Dalam setiap laluan, kami menggunakan kaedah mongoose yang sepadan untuk berinteraksi dengan pangkalan data MongoDB dan menghantar respons yang sesuai berdasarkan hasil yang dikembalikan. #🎜🎜##🎜🎜#Langkah 5: Tentukan model #🎜🎜#Dalam direktori akar projek, buat direktori models dan cipta product.js dalam dokumen itu. Tambahkan kod berikut dalam fail product.js: #🎜🎜#rrreee#🎜🎜#Kod ini mentakrifkan model produk ringkas Produk, yang mempunyai atribut rentetan A dipanggil name, atribut angka yang dipanggil price dan atribut rentetan yang dipanggil description. Hantar model productSchema sebagai parameter kepada kaedah mongoose.model() dan eksport Product. #🎜🎜##🎜🎜#Langkah 6: Jalankan pelayan #🎜🎜#Dalam direktori akar projek, jalankan pelayan melalui arahan berikut: #🎜🎜#rrreee#🎜🎜#Jika semuanya berjalan lancar, anda akan berada dalam arahan Dalam baris anda melihat mesej Berjaya disambungkan ke pangkalan data dan Pelayan dimulakan. Kini, anda boleh mengakses laluan API yang berbeza dalam penyemak imbas atau Posman, seperti: http://localhost:3000/api/products. #🎜🎜##🎜🎜#Ringkasan#🎜🎜#Dengan MongoDB dan Node.js, kami boleh membangunkan API CRUD ringkas dengan mudah. Dalam artikel ini, kami mempelajari cara mencipta API CRUD mudah menggunakan pangkalan data MongoDB, Node.js dan rangka kerja Express.js serta memberikan contoh kod khusus. Dengan pemahaman yang lebih mendalam tentang MongoDB dan Node.js, anda boleh melanjutkan dan menyesuaikan API anda mengikut keperluan sebenar anda. #🎜🎜#

Atas ialah kandungan terperinci Bagaimana untuk membangunkan API CRUD mudah menggunakan MongoDB. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn