Bagaimana untuk membangunkan API CRUD mudah menggunakan MongoDB
Sep 19, 2023 pm 12:32 PMCara 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
的新目錄,并在其中初始化一個(gè)新的Node.js項(xiàng)目。-y
選項(xiàng)將使用默認(rèn)設(shè)置創(chuàng)建package.json
文件。
第二步:安裝依賴項(xiàng)
我們將使用一些npm包來幫助我們開發(fā)CRUD API。在命令行中執(zhí)行以下命令來安裝依賴項(xiàng):
$ npm install express body-parser mongoose
這會(huì)使用npm安裝express
,body-parser
和mongoose
三個(gè)包。express
是一個(gè)流行的Node.js框架,body-parser
是一個(gè)解析請(qǐng)求體的中間件,mongoose
是用于與MongoDB數(shù)據(jù)庫交互的對(duì)象模型工具。
第三步:創(chuàng)建服務(wù)器和路由
在項(xiàng)目的根目錄下,創(chuàng)建server.js
文件,并添加以下代碼:
const express = require('express'); const bodyParser = require('body-parser'); const mongoose = require('mongoose'); const app = express(); const port = 3000; // 連接MongoDB數(shù)據(jù)庫 mongoose.connect('mongodb://localhost:27017/crud-api', { useNewUrlParser: true }); const db = mongoose.connection; db.on('error', console.error.bind(console, '數(shù)據(jù)庫連接失?。?)); db.once('open', () => { console.log('數(shù)據(jù)庫連接成功!'); }); // 設(shè)置路由 app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); app.get('/', (req, res) => { res.send('歡迎使用CRUD API'); }); // 啟動(dòng)服務(wù)器 app.listen(port, () => { console.log('服務(wù)器已啟動(dòng),端口號(hào):' + port); });
這段代碼首先引入所需的npm包,然后創(chuàng)建一個(gè)Express應(yīng)用程序并設(shè)置服務(wù)器端口為3000。之后,我們使用mongoose.connect()
方法連接到MongoDB數(shù)據(jù)庫。請(qǐng)確保MongoDB服務(wù)運(yùn)行在本地機(jī)器的默認(rèn)端口27017上。接下來,我們?cè)O(shè)置了一個(gè)主要用于測(cè)試的根路由。最后,我們使用app.listen()
方法啟動(dòng)服務(wù)器并監(jiān)聽3000端口。
第四步:定義模型和路由
我們將創(chuàng)建一個(gè)名為product
的簡單數(shù)據(jù)庫模型,并編寫對(duì)應(yīng)的CRUD路由。在server.js
文件中添加以下代碼:
const Product = require('./models/product'); // 查詢所有產(chǎn)品 app.get('/api/products', (req, res) => { Product.find({}, (err, products) => { if (err) { res.status(500).send('查詢數(shù)據(jù)庫出錯(cuò)!'); } else { res.json(products); } }); }); // 查詢單個(gè)產(chǎn)品 app.get('/api/products/:id', (req, res) => { Product.findById(req.params.id, (err, product) => { if (err) { res.status(500).send('查詢數(shù)據(jù)庫出錯(cuò)!'); } else if (!product) { res.status(404).send('找不到產(chǎn)品!'); } else { res.json(product); } }); }); // 創(chuàng)建新產(chǎn)品 app.post('/api/products', (req, res) => { const newProduct = new Product(req.body); newProduct.save((err, product) => { if (err) { res.status(500).send('保存到數(shù)據(jù)庫出錯(cuò)!'); } else { res.json(product); } }); }); // 更新產(chǎn)品 app.put('/api/products/:id', (req, res) => { Product.findByIdAndUpdate(req.params.id, req.body, { new: true }, (err, product) => { if (err) { res.status(500).send('更新數(shù)據(jù)庫出錯(cuò)!'); } else if (!product) { res.status(404).send('找不到產(chǎn)品!'); } else { res.json(product); } }); }); // 刪除產(chǎn)品 app.delete('/api/products/:id', (req, res) => { Product.findByIdAndRemove(req.params.id, (err, product) => { if (err) { res.status(500).send('刪除數(shù)據(jù)庫出錯(cuò)!'); } else if (!product) { res.status(404).send('找不到產(chǎn)品!'); } else { res.send('產(chǎn)品刪除成功!'); } }); });
在這段代碼中,我們首先引入Product
模型,該模型是一個(gè)基于mongoose.Schema
的簡單MongoDB模型。然后,我們定義了用于查詢所有產(chǎn)品、查詢單個(gè)產(chǎn)品、創(chuàng)建新產(chǎn)品、更新產(chǎn)品和刪除產(chǎn)品的路由。在每個(gè)路由中,我們都使用相應(yīng)的mongoose
方法來與MongoDB數(shù)據(jù)庫交互,并根據(jù)返回結(jié)果發(fā)送合適的響應(yīng)。
第五步:定義模型
在項(xiàng)目的根目錄下,創(chuàng)建一個(gè)models
目錄并在其中創(chuàng)建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;
這段代碼定義了一個(gè)簡單的產(chǎn)品模型Product
,它有一個(gè)名為name
的字符串屬性,一個(gè)名為price
的數(shù)字屬性和一個(gè)名為description
的字符串屬性。將productSchema
模型作為參數(shù)傳遞給mongoose.model()
方法并導(dǎo)出Product
。
第六步:運(yùn)行服務(wù)器
在項(xiàng)目的根目錄下,通過以下命令來運(yùn)行服務(wù)器:
$ node server.js
如果一切順利,你將會(huì)在命令行中看到成功連接到數(shù)據(jù)庫和服務(wù)器已啟動(dòng)的消息?,F(xiàn)在,你可以在瀏覽器或Postman中訪問API的不同路由,如:http://localhost:3000/api/products
Kami akan menggunakan beberapa pakej npm untuk membantu kami membangunkan API CRUD. Jalankan arahan berikut pada baris arahan untuk memasang dependensi:
rrreee
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 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 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!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kaedah untuk mengemas kini dokumen di MongoDB termasuk: 1. Gunakan kaedah UpdateOne dan UpdateMany untuk melakukan kemas kini asas; 2. Gunakan pengendali seperti $ set, $ inc, dan $ push untuk melakukan kemas kini lanjutan. Dengan kaedah dan pengendali ini, anda boleh mengurus dan mengemas kini data dengan cekap di MongoDB.

Cara untuk melihat semua pangkalan data di MongoDB adalah memasuki perintah "showdbs". 1. Perintah ini hanya memaparkan pangkalan data yang tidak kosong. 2. Anda boleh menukar pangkalan data melalui arahan "Gunakan" dan memasukkan data untuk menjadikannya paparan. 3. Perhatikan pangkalan data dalaman seperti "tempatan" dan "config". 4. Apabila menggunakan pemandu, anda perlu menggunakan kaedah "ListDatabases ()" untuk mendapatkan maklumat terperinci. 5. Perintah "db.stats ()" boleh melihat statistik pangkalan data terperinci.

Perintah untuk membuat koleksi di MongoDB adalah db.CreateCollection (nama, pilihan). Langkah -langkah khusus termasuk: 1. Gunakan perintah asas db.createCollection ("mycollection") untuk membuat koleksi; 2. Set Parameter Pilihan, seperti saiz, saiz, maksimum, penyimpanan, pengesahan, pengesahan dan pengesahan, seperti db.createCollection ("MycappedCollection

Di MongoDB, anda boleh menggunakan kaedah jenis () untuk menyusun dokumen dalam koleksi. 1. Penggunaan Asas: Susun dengan menentukan bidang dan perintah penyortiran (1 adalah menaik dan -1 turun), seperti db.products.find (). Sort ({price: 1}). 2. Penggunaan Lanjutan: Ia boleh disusun mengikut pelbagai bidang, seperti db.products.find (). Sort ({kategori: 1, harga: -1}). 3. Pengoptimuman Prestasi: Menggunakan pengindeksan, mengelakkan penyortiran dan penyortiran paging dapat meningkatkan kecekapan, seperti db.products.createindex ({price: 1}) dan db.products.f

Gridfs adalah alat di MongoDB untuk menyimpan dan mengambil fail dengan had saiz lebih daripada 16Mbbson. 1. Ia membahagikan fail ke dalam blok 255kb, menyimpannya dalam koleksi Fs.Chunks, dan menjimatkan metadata dalam koleksi Fs.Files. 2. Situasi yang sesuai termasuk: lebih daripada 16MB fail, keperluan untuk menguruskan fail dan metadata seragam, akses ke bahagian tertentu fail, dan menggunakan MongoDB tanpa memperkenalkan sistem storan luaran. 3. Gridfs disimpan secara automatik dalam ketulan apabila memuat naik, menyusun semula fail mengikut urutan semasa membaca, dan menyokong metadata tersuai dan penyimpanan pelbagai versi. 4. Penyelesaian alternatif termasuk: menyimpan laluan fail di MongoDB dan sebenarnya menyimpannya dalam sistem fail,

Tidak ada perintah "createTatabase" yang jelas di MongoDB, pangkalan data dibuat apabila data pertama dimasukkan. 1. Gunakan "usemydb" untuk beralih ke pangkalan data. 2. Masukkan dokumen, seperti "db.users.insertone ({name: 'Johndoe', umur: 30})". Nota termasuk: Pangkalan data dan koleksi dibuat apabila data pertama dimasukkan, dengan sekatan yang ketat pada nama, dan pengurusan kebenaran, konsistensi data, pengoptimuman prestasi dan pemulihan sandaran harus dipertimbangkan.

Sebab -sebab untuk menamakan semula koleksi di MongoDB termasuk refactoring kod dan pengoptimuman prestasi dengan menggunakan perintah renamecollection. Nota termasuk: 1. Mengunci pangkalan data, 2. Cadangan Amalan Terbaik: 1. Pilih Operasi Puncak Rendah, 2. Koleksi penamaan semula memerlukan pengendalian yang teliti untuk memastikan prestasi sistem dan kestabilan.

Di MongoDB, pertanyaan penomboran boleh dilaksanakan melalui kaedah SKIP () dan had (). 1. Gunakan skip (n) untuk melangkau dokumen N pertama, had (m) untuk mengembalikan dokumen m. 2. Semasa pengoptimuman, pertanyaan pelbagai boleh digunakan dan bukannya melangkau () dan hasilnya boleh di -cache untuk meningkatkan prestasi.
