欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用node.js實現(xiàn)對數(shù)據庫進行CRUD操作

 更新時間:2024年12月28日 13:36:03   作者:土豆炒馬鈴薯。  
這篇文章主要為大家詳細介紹了如何使用node.js實現(xiàn)對數(shù)據庫進行CRUD(增刪改查)操作,文中的示例代碼講解詳細,感興趣的小伙伴可以參考一下

在JavaScript中直接連接數(shù)據庫并進行增刪改查(CRUD)操作通常不推薦這么做,因為JavaScript(尤其是前端JavaScript)無法直接連接數(shù)據庫,出于安全性和架構設計考慮。一般來說,應該通過后端服務(例如Node.js、Express等)來與數(shù)據庫進行交互,前端通過API請求與后端通信。

以下是一個完整的示例,展示如何使用Node.js與MySQL數(shù)據庫進行CRUD操作:

安裝必要的依賴

首先,確保你已經安裝了Node.js。然后使用以下命令初始化一個新的Node.js項目并安裝依賴:

npm init -y
npm install express mysql2 body-parser

創(chuàng)建數(shù)據庫(MySQL)

在MySQL中創(chuàng)建一個數(shù)據庫和表,例如:

CREATE DATABASE sportsms;

USE sportsms;

???????CREATE TABLE athletes (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    age INT,
    event VARCHAR(100)
);

創(chuàng)建Node.js應用

創(chuàng)建一個名為 app.js 的文件,示例代碼如下:

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

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

// 使用body-parser來解析JSON請求體
app.use(bodyParser.json());

// 創(chuàng)建數(shù)據庫連接池
const db = mysql.createPool({
  host: 'localhost',
  user: 'root',         // MySQL用戶名
  password: '',         // MySQL密碼
  database: 'sportsms'  // 數(shù)據庫名稱
});

// 測試數(shù)據庫連接
db.getConnection((err, connection) => {
  if (err) {
    console.error('數(shù)據庫連接失敗:', err.stack);
    return;
  }
  console.log('成功連接到數(shù)據庫');
  connection.release();
});

// 創(chuàng)建選手(增)
app.post('/athletes', (req, res) => {
  const { name, age, event } = req.body;

  const query = 'INSERT INTO athletes (name, age, event) VALUES (?, ?, ?)';
  db.query(query, [name, age, event], (err, result) => {
    if (err) {
      return res.status(500).json({ error: '數(shù)據庫錯誤', details: err });
    }
    res.status(201).json({ id: result.insertId, name, age, event });
  });
});

// 獲取所有選手(查)
app.get('/athletes', (req, res) => {
  db.query('SELECT * FROM athletes', (err, results) => {
    if (err) {
      return res.status(500).json({ error: '數(shù)據庫錯誤', details: err });
    }
    res.json(results);
  });
});

// 獲取單個選手(查)
app.get('/athletes/:id', (req, res) => {
  const { id } = req.params;
  db.query('SELECT * FROM athletes WHERE id = ?', [id], (err, results) => {
    if (err) {
      return res.status(500).json({ error: '數(shù)據庫錯誤', details: err });
    }
    if (results.length === 0) {
      return res.status(404).json({ error: '選手未找到' });
    }
    res.json(results[0]);
  });
});

// 更新選手(改)
app.put('/athletes/:id', (req, res) => {
  const { id } = req.params;
  const { name, age, event } = req.body;

  const query = 'UPDATE athletes SET name = ?, age = ?, event = ? WHERE id = ?';
  db.query(query, [name, age, event, id], (err, result) => {
    if (err) {
      return res.status(500).json({ error: '數(shù)據庫錯誤', details: err });
    }
    if (result.affectedRows === 0) {
      return res.status(404).json({ error: '選手未找到' });
    }
    res.json({ id, name, age, event });
  });
});

// 刪除選手(刪)
app.delete('/athletes/:id', (req, res) => {
  const { id } = req.params;
  db.query('DELETE FROM athletes WHERE id = ?', [id], (err, result) => {
    if (err) {
      return res.status(500).json({ error: '數(shù)據庫錯誤', details: err });
    }
    if (result.affectedRows === 0) {
      return res.status(404).json({ error: '選手未找到' });
    }
    res.status(204).send();
  });
});

// 啟動服務器
app.listen(port, () => {
  console.log(`服務器正在運行,訪問 http://localhost:${port}`);
});

啟動服務器

在命令行中,運行以下命令啟動服務器:

node app.js

測試API

你可以使用工具如Postman或者直接用 curl 來測試API。以下是各個操作的示例請求:

增 - 創(chuàng)建選手:

POST /athletes

請求體(JSON):

{
  "name": "John Doe",
  "age": 25,
  "event": "100m Sprint"
}

查 - 獲取所有選手:

GET /athletes

響應(JSON):

[
  {
    "id": 1,
    "name": "John Doe",
    "age": 25,
    "event": "100m Sprint"
  }
]

查 - 獲取單個選手:

GET /athletes/1

響應(JSON):

{
  "id": 1,
  "name": "John Doe",
  "age": 25,
  "event": "100m Sprint"
}

改 - 更新選手信息:

PUT /athletes/1

請求體(JSON):

{
  "name": "John Doe",
  "age": 26,
  "event": "200m Sprint"
}

刪 - 刪除選手:

DELETE /athletes/1

這就是一個簡單的Node.js和MySQL連接并進行增刪改查(CRUD)操作的完整示例。你可以通過前端使用JavaScript發(fā)送HTTP請求與后端交互。注意,直接在前端處理數(shù)據庫操作是不安全的,前端應僅通過API請求與后端交互。

到此這篇關于使用node.js實現(xiàn)對數(shù)據庫進行CRUD操作的文章就介紹到這了,更多相關node.js數(shù)據庫CRUD操作內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解如何在NodeJS應用程序中處理多個API請求

    詳解如何在NodeJS應用程序中處理多個API請求

    NodeJS默認是異步的,這意味著它已經能夠同時處理多個請求,但它只適用于I/O操作,如HTTP請求、文件系統(tǒng)操作、數(shù)據庫查詢、實時聊天應用等,在處理CPU密集型任務時,可能需要很長時間,這就是為什么NodeJS提供了一些我們將在下面介紹的特定包
    2023-12-12
  • Ubuntu22.04系統(tǒng)下升級nodejs到v18版本

    Ubuntu22.04系統(tǒng)下升級nodejs到v18版本

    ubuntu默認安裝的nodejs版本比較老,要安裝到最新的,下面這篇文章主要給大家介紹了關于Ubuntu22.04系統(tǒng)下升級nodejs到v18版本的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-06-06
  • node.js中的console.timeEnd方法使用說明

    node.js中的console.timeEnd方法使用說明

    這篇文章主要介紹了node.js中的console.timeEnd方法使用說明,本文介紹了console.timeEnd的方法說明、語法、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js?Webpack常見的模式詳解

    Node.js?Webpack常見的模式詳解

    這篇文章主要介紹了Node.js?Webpack常見的模式,Webpack的另一個核心是Plugin?,Plugin是可以用于執(zhí)行更加廣泛的任務如打包優(yōu)化資源管理?環(huán)境變量注入等,需要的朋友可以參考下
    2022-10-10
  • 詳解node如何讓一個端口同時支持https與http

    詳解node如何讓一個端口同時支持https與http

    眾所周知node是一個高性能的web服務器,使用它可以很簡單的創(chuàng)建一個http或https的服務器。這篇文章主要介紹了詳解node如何讓一個端口同時支持https與http
    2017-07-07
  • Node.js中如何合并兩個復雜對象詳解

    Node.js中如何合并兩個復雜對象詳解

    下面這篇文章主要給大家介紹了在Node.js中如何合并兩個復雜對象的方法,文中給出了詳細的示例代碼,相信對大家的理解和學習具有一定的參考借鑒價值,有需要的朋友可以參考,下面來一起看看吧。
    2016-12-12
  • 使用?Node.js和Express搭建服務器的過程步驟詳解

    使用?Node.js和Express搭建服務器的過程步驟詳解

    Node.js?是一個開源、跨平臺的?JavaScript?運行時環(huán)境,這篇文章主要介紹了如何使用?Node.js和Express搭建服務器,需要的朋友可以參考下
    2023-09-09
  • nvm管理node無法正常切換node版本問題的解決方法

    nvm管理node無法正常切換node版本問題的解決方法

    相信一定會有存在一些小伙伴 明明都已經按著操作卸載node 和安裝nvm 了但是 依舊無法正常通過nvm管理node,本文將給大家介紹nvm管理node無法正常切換node版本問題的解決方法,需要的朋友可以參考下
    2024-01-01
  • Node.js 獲取微信JS-SDK CONFIG的方法示例

    Node.js 獲取微信JS-SDK CONFIG的方法示例

    這篇文章主要介紹了Node.js 獲取微信JS-SDK CONFIG的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • 利用Decorator如何控制Koa路由詳解

    利用Decorator如何控制Koa路由詳解

    最近學習了plover的底層框架koa,所以下面這篇文章主要給大家介紹了關于利用Decorator如何控制Koa路由的相關資料,,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來隨著小編一起學習學習吧
    2018-06-06

最新評論