搜尋
首頁web前端前端問答如何利用nodejs實現增刪改查

近年來,隨著網路技術的不斷發展,web 應用需求也日益增長,開發人員為了實現各種複雜的操作和交互,需要依賴各種框架和平台。而 Node.js 的出現,讓 web 應用開發更方便、更有效率,應用範圍也越來越廣泛。本文將介紹如何利用 Node.js 實作增、刪、改、查操作,並示範一個簡單的範例。

一、安裝環境

在開始進行開發前,需要先安裝 Node.js,推薦從官網 https://nodejs.org/en/ 下載最新版本。安裝成功後,可在命令列中輸入以下命令來檢查是否安裝成功:

node -v

如果顯示出 Node.js 的版本訊息,則表示安裝成功。

二、建立專案

  1. 建立專案目錄

在任意目錄下建立新的資料夾,並進入該資料夾。可以使用下列指令建立和進入專案目錄:

mkdir project
cd project
  1. 初始化專案

#在專案目錄下執行下列指令:

npm init -y

此指令將會建立一個package.json 文件,其中包含專案資訊和依賴關係。

  1. 安裝依賴

執行下列指令安裝需要用到的依賴:

npm install express body-parser mongoose --save

以上依賴分別是:

  • express:一個Node.js 的web 框架,用於簡化web 應用的開發過程;
  • body-parser:用於解析請求體的中間件;
  • mongoose:用於操作MongoDB 的函式庫。

三、實作增、刪、改、查操作

  1. 連接MongoDB 資料庫

在app.js 檔案中加入以下程式碼,實作連接MongoDB 資料庫:

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost:27017/nodejs_demo', { useNewUrlParser: true, useUnifiedTopology: true });

const db = mongoose.connection;

db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
  console.log('Database connected!');
});

程式碼中,首先透過mongoose.connect() 方法連接到本地的mongodb 資料庫,然後監聽資料庫連線的狀態,如果連線成功,則列印出"Database connected!"的訊息。

  1. 建立資料模型

在models 資料夾下建立一個新的檔案user.js,用於定義使用者資料模型,程式碼如下:

const mongoose = require('mongoose');

const schema = new mongoose.Schema({
  name: String,
  age: Number,
  gender: String
});

module.exports = mongoose.model('User', schema);

程式碼中,定義了一個名為User 的資料模型,包含三個屬性:name、age、gender,分別表示使用者的姓名、年齡和性別。

  1. 實作增操作

在app.js 檔案中加入以下程式碼,實作增加使用者的操作:

const express = require('express');
const bodyParser = require('body-parser');
const User = require('./models/user');

const app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.post('/users', async (req, res) => {
  const user = new User({
    name: req.body.name,
    age: req.body.age,
    gender: req.body.gender
  });

  await user.save();

  res.send(user);
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

程式碼中,使用app. post() 方法監聽'/users' 的POST 請求,將請求體的參數轉換產生一個新的User 對象,並儲存到資料庫中,最後回應請求。

  1. 實作刪操作

在app.js 檔案中加入以下程式碼,實作刪除使用者的動作:

app.delete('/users/:id', async (req, res) => {
  const result = await User.deleteOne({ _id: req.params.id });

  res.send(result);
});

程式碼中,使用app. delete() 方法監聽'/users/:id' 的刪除請求,透過用戶的ID 找到需要刪除的用戶,然後呼叫User.deleteOne() 方法從資料庫中刪除用戶,並回應請求。

  1. 實作改動作

在app.js 檔案中加入以下程式碼,實作修改使用者的動作:

app.put('/users/:id', async (req, res) => {
  const result = await User.updateOne({ _id: req.params.id }, {
    name: req.body.name,
    age: req.body.age,
    gender: req.body.gender
  });

  res.send(result);
});

程式碼中,使用app. put() 方法監聽'/users/:id' 的修改請求,透過用戶的ID 找到需要修改的用戶,然後呼叫User.updateOne() 方法更新用戶數據,並回應請求。

  1. 實作查操作

在app.js 檔案中加入以下程式碼,實作查詢使用者的動作:

app.get('/users', async (req, res) => {
  const users = await User.find().exec();

  res.send(users);
});

程式碼中,使用app. get() 方法監聽'/users' 的查詢請求,透過User.find() 方法在資料庫中尋找所有的用戶,並回應請求。

四、測試

執行以下指令啟動服務:

node app.js

在Postman 中測試以上功能:

  1. #增加一個使用者:

發送POST 要求到http://localhost:3000/users,請求體如下:

{
  "name": "Tom",
  "age": 25,
  "gender": "male"
}
  1. 查詢所有使用者:
##發送GET請求到http://localhost:3000/users。

    修改使用者資訊:
傳送PUT 要求到http://localhost:3000/users/:id,請求體如下:

{
  "name": "Jerry",
  "age": 30,
  "gender": "female"
}
    刪除使用者:
發送DELETE 要求到http://localhost:3000/users/:id。

五、總結

本文介紹如何基於 Node.js 建立一個非常簡單的實例,並示範如何使用 Express 和 Mongoose 實現增、刪、改、查操作。當然,本文範例是非常簡單的,在實際的開發過程中需要注意資料庫的設計以及請求參數的驗證等問題。但本文所述的技術和方法,可以為 Node.js 初學者提供一些幫助和建議,幫助他們更快速、有效率地掌握 Node.js 的開發技能。

以上是如何利用nodejs實現增刪改查的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
了解usestate():綜合反應國家管理指南了解usestate():綜合反應國家管理指南Apr 25, 2025 am 12:21 AM

useState()isaReacthookusedtomanagestateinfunctionalcomponents.1)Itinitializesandupdatesstate,2)shouldbecalledatthetoplevelofcomponents,3)canleadto'stalestate'ifnotusedcorrectly,and4)performancecanbeoptimizedusinguseCallbackandproperstateupdates.

使用React的優點是什麼?使用React的優點是什麼?Apr 25, 2025 am 12:16 AM

ReactispupularduetoItsOmpontement,基於虛擬,虛擬詞,Richecosystem和declarativedation.1)基於組件的harchitectureallowslowsforreusableuipieces。

在React中調試:識別和解決共同問題在React中調試:識別和解決共同問題Apr 25, 2025 am 12:09 AM

todebugreactapplicationsefectefectionfection,usethestertate:1)proppropdrillingwithcontextapiorredux.2)使用babortControllerToptopRollerTopRollerTopRollerTopRollerTopRollerTopRollerTopRollerTopRollerTopRollerTopRaceeDitions.3)intleleassynChronOusOperations.3)

反應中的usestate()是什麼?反應中的usestate()是什麼?Apr 25, 2025 am 12:08 AM

usestate()inrectallowsStateMagementionInfunctionalComponents.1)ITSIMPLIFIESSTATEMAGEMENT,MACHECODEMORECONCONCISE.2)usetheprevcountfunctionToupdateStateBasedonitspReviousViousViousvalue,deveingingStaleStateissues.3)

usestate()與用戶ducer():為您的狀態需求選擇正確的掛鉤usestate()與用戶ducer():為您的狀態需求選擇正確的掛鉤Apr 24, 2025 pm 05:13 PM

selectUsestate()forsimple,獨立的variables; useusereducer()forcomplexstateLogicorWhenStatedIppedsonPreviousState.1)usestate()isidealForsImpleupDatesLikeToggGlikGlingaBglingAboolAboolAupDatingacount.2

使用usestate()管理狀態:實用教程使用usestate()管理狀態:實用教程Apr 24, 2025 pm 05:05 PM

useState優於類組件和其它狀態管理方案,因為它簡化了狀態管理,使代碼更清晰、更易讀,並與React的聲明性本質一致。 1)useState允許在函數組件中直接聲明狀態變量,2)它通過鉤子機制在重新渲染間記住狀態,3)使用useState可以利用React的優化如備忘錄化,提升性能,4)但需注意只能在組件頂層或自定義鉤子中調用,避免在循環、條件或嵌套函數中使用。

何時使用usestate()以及何時考慮替代狀態管理解決方案何時使用usestate()以及何時考慮替代狀態管理解決方案Apr 24, 2025 pm 04:49 PM

useUsestate()forlocalComponentStateMangementighatighation; 1)usestate()isidealforsimple,localforsimple.2)useglobalstate.2)useglobalstateSolutionsLikErcontExtforsharedState.3)

React的可重複使用的組件:增強代碼可維護性和效率React的可重複使用的組件:增強代碼可維護性和效率Apr 24, 2025 pm 04:45 PM

ReusableComponentsInrectenHanceCodainainability and效率byallowingDevelostEsteSeTheseTheseThesAmeCompOntionActActRossDifferentPartSofanApplicationorprojects.1)heSredunceRedUndenceNandSimplifyUpdates.2)yensureconsistencyInuserexperience.3)

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。