使用Node.js搭配express框架快速構建后端業務接口模塊Demo

使用Node.js搭配express框架快速構建后端業務接口模塊Demo!實際開發中,有很多項目,其實都是可以使用node.js來完成對接mysql數據庫的,express確實使用起來非常簡單,入手快,效率非常高。下面是一個簡單的案例,幫助大家快速掌握了解,如何構建自己的后端管理模塊。


1:

步驟 1:初始化項目
  1. 在命令行中進入你想要創建項目的文件夾,運行:

    mkdir my-express-backend
    cd my-express-backend
    npm init -y
    

    步驟 2:安裝 Express

    安裝 express 和其他必要的依賴:

    npm install express mysql2 body-parser cors

這個速度很快,幾秒鐘就可以按照完成了。非常快捷。


2:

  • express:核心框架
  • mysql2:連接 MySQL 數據庫
  • body-parser:解析請求體,常用來解析 POST 請求的數據
  • cors:跨域資源共享,允許你的前端與后端進行跨域請求

步驟 3:創建 index.js 文件

在項目根目錄下創建 index.js 文件,這是 Express 服務器的入口。

touch index.js

步驟 4:編寫 Express 服務器代碼

打開 index.js 文件并寫入以下代碼:

// 引入依賴
const express = require('express');
const mysql = require('mysql2');
const cors = require('cors');
const bodyParser = require('body-parser');// 創建 Express 實例
const app = express();
const port = 3000;// 允許跨域請求
app.use(cors());// 解析 JSON 請求體
app.use(bodyParser.json());// 創建數據庫連接池
const db = mysql.createPool({host: 'localhost',     // 數據庫主機user: 'root',          // 數據庫用戶名password: 'password',  // 數據庫密碼database: 'lost_and_found', // 數據庫名稱
});// 測試數據庫連接
db.getConnection((err, connection) => {if (err) {console.error('Database connection failed:', err.stack);return;}console.log('Connected to database as ID', connection.threadId);connection.release();
});// 創建一個簡單的 API 端口,返回 Hello World
app.get('/', (req, res) => {res.send('Hello World!');
});// 獲取當前數據庫中所有帖子
app.get('/posts', (req, res) => {const query = 'SELECT * FROM posts';db.query(query, (err, results) => {if (err) {console.error('Error fetching posts:', err);return res.status(500).json({ message: 'Error fetching posts' });}res.json(results);});
});// 獲取帖子的數量
app.get('/posts/count', (req, res) => {const query = 'SELECT COUNT(*) AS count FROM posts';db.query(query, (err, results) => {if (err) {console.error('Error fetching posts count:', err);return res.status(500).json({ message: 'Error fetching posts count' });}res.json({ count: results[0].count });});
});// 用戶注冊 API
app.post('/register', (req, res) => {const { username, email, password } = req.body;const query = 'INSERT INTO users (username, email, password) VALUES (?, ?, ?)';db.query(query, [username, email, password], (err, result) => {if (err) {console.error('Error registering user:', err);return res.status(500).json({ message: 'Error registering user' });}res.status(201).json({ message: 'User registered successfully' });});
});// 啟動服務器
app.listen(port, () => {console.log(`Server running on http://localhost:${port}`);
});

3. 啟動 Express 后端服務器
node index.js

在項目根目錄下,執行以下命令啟動服務器:執行這個指令,即可打開服務器端程序了。我們簡單的測試一下,入下圖所示:



說明,這個測試接口是我自己寫的,地址,你可以自己改成自己喜歡的地址,自己測試。


4. 數據庫設置

確保你已經在 MySQL 中創建了數據庫和表,并配置好數據庫連接。

創建數據庫和表

假設你的數據庫叫做 lost_and_found,你可以執行以下 SQL 來創建表:

CREATE DATABASE lost_and_found;USE lost_and_found;CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(255) NOT NULL,email VARCHAR(255) NOT NULL,password VARCHAR(255) NOT NULL,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);CREATE TABLE posts (id INT AUTO_INCREMENT PRIMARY KEY,user_id INT NOT NULL,title VARCHAR(255) NOT NULL,description TEXT NOT NULL,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,FOREIGN KEY (user_id) REFERENCES users(id)
);

5. 測試后端 API

在瀏覽器或者 Postman 中,你可以訪問以下 URL 來測試后端功能:

  • http://localhost:3000/:測試是否能訪問到 Hello World。
  • http://localhost:3000/posts:獲取所有帖子數據。
  • http://localhost:3000/posts/count:獲取帖子數量。

6. 使用 Postman 測試注冊 API

你可以使用 Postman 測試用戶注冊接口。請求方法是 POST,URL 是 http://localhost:3000/register,請求體(Body)格式為 JSON:

{"username": "testuser","email": "test@example.com","password": "testpassword"
}
7. 擴展功能

在完成基礎的 Express 后端搭建后,你可以繼續擴展功能,加入更多的 API 端點,例如:

  • 用戶登錄和身份驗證(JWT)
  • 發布帖子、刪除帖子等
  • 用戶積分管理
  • 黑名單功能等

8. 部署到生產環境

當你完成本地開發和測試后,下一步就是將 Express 后端部署到生產環境。可以使用一些常見的部署方式,例如:

  • Heroku:一個簡單的云平臺服務,適合小型應用。
  • DigitalOcean、AWS EC2:適合需要更多控制的應用,可以配置自己的服務器。
  • Docker:如果你使用 Docker,可以將應用容器化并在任何支持 Docker 的平臺上運行。


9. 總結
  1. 初始化項目:使用 npm init 創建 package.json
  2. 安裝依賴:安裝 Express、MySQL 以及其他依賴。
  3. 編寫服務器代碼:創建 Express 實例,連接 MySQL,并定義 API。
  4. 測試后端功能:使用瀏覽器或 Postman 測試后端 API。
  5. 擴展功能:添加用戶身份驗證、發布帖子等功能。
  6. 部署到生產:使用 Heroku 或其他平臺將你的應用部署到生產環境。

這樣,你就完成了一個基本的 Express 后端搭建。隨著項目的進展,你可以逐步增加更多的功能和優化。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/69227.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/69227.shtml
英文地址,請注明出處:http://en.pswp.cn/web/69227.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python----Python高級(并發編程:協程Coroutines,事件循環,Task對象,協程間通信,協程同步,將協程分布到線程池/進程池中)

一、協程 1.1、協程 協程,Coroutines,也叫作纖程(Fiber) 協程,全稱是“協同程序”,用來實現任務協作。是一種在線程中,比線程更加輕量級的存在,由程序員自己寫程序來管理。 當出現IO阻塞時,…

Unity 加載OSGB(webgl直接加載,無需轉換格式!)

Unity webgl加載傾斜攝影數據 前言效果圖后續不足 前言 Unity加載傾斜攝影數據,有很多的插件方便好用,但是發布到網頁端均失敗,因為webgl 的限制,IO讀取失效。 前不久發現一個開源項目: UnityOSGB-main 通過兩種方式在 Unity 中…

【Block總結】PSA,金字塔擠壓注意力,解決傳統注意力機制在捕獲多尺度特征時的局限性

論文信息 標題: EPSANet: An Efficient Pyramid Squeeze Attention Block on Convolutional Neural Network論文鏈接: arXivGitHub鏈接: https://github.com/murufeng/EPSANet 創新點 EPSANet提出了一種新穎的金字塔擠壓注意力(PSA)模塊,旨…

【重新認識C語言----結構體篇】

目錄 -----------------------------------------begin------------------------------------- 引言 1. 結構體的基本概念 1.1 為什么需要結構體? 1.2 結構體的定義 2. 結構體變量的聲明與初始化 2.1 聲明結構體變量 2.2 初始化結構體變量 3. 結構體成員的訪…

如何在Vscode中接入Deepseek

一、獲取Deepseek APIKEY 首先,登錄Deepseek官網的開放平臺:DeepSeek 選擇API開放平臺,然后登錄Deepseek后臺。 點擊左側菜單欄“API keys”,并創建API key。 需要注意的是,生成API key復制保存到本地,丟失…

電腦開機提示按f1原因分析及終極解決方法來了

經常有網友問到一個問題,我電腦開機后提示按f1怎么解決?不管理是臺式電腦,還是筆記本,都有可能會遇到開機需要按F1,才能進入系統的問題,引起這個問題的原因比較多,今天小編在這里給大家列舉了比…

AI協助探索AI新構型自動化創新的技術實現

一、AI自進化架構的核心范式 1. 元代碼生成與模塊化重構 - 代碼級自編程:基于神經架構搜索的強化學習框架,AI可通過生成元代碼模板(框架的抽象層定義、神經元結點-網絡拓撲態的編碼抽象定義)自動組合功能模塊。例如&#xff0…

RAID獨立硬盤冗余陣列

目錄 一、RAID基本功能 二、RAID常見級別 三、實現方式 1、軟件磁盤陣列 2、硬件磁盤陣列 四、熱備盤 RAID(Redundant Array of Independent Disks)是一種通過將多個硬盤組合成一個邏輯單元來提升存儲性能、冗余性或兩者兼具的技術。 一、RAID基本…

【高級篇 / IPv6】(7.2) ? 04. 在60E上配置ADSL撥號寬帶上網(IPv4) ? FortiGate 防火墻

【簡介】除了單位用戶以外,大部分個人用戶目前使用的仍然是30E、50E、60E系列防火墻,固件無法達到目前最高版本7.6,這里以最常用的60E為例,演示固件版本7.2下實現ADSL撥號寬帶的IPv6上網。由于內容比較多,文章分上、下…

Qt之設置QToolBar上的按鈕樣式

通常給QAction設置icon后,菜單欄的菜單項和工具欄(QToolBar)上對應的按鈕會同時顯示該icon。工具欄還可以使用setToolButtonStyle函數設置按鈕樣式,其參數為枚舉值: enum ToolButtonStyle {ToolButtonIconOnly,ToolButtonTextOnly,ToolButtonTextBesideIcon,ToolButtonTe…

【從零開始系列】DeepSeek-R1:(本地部署使用)思維鏈推理大模型,開源的神!——Windows/Linux本地環境測試 + vLLM遠程部署服務

目錄 一、環境配置 1.硬件設備評估 2.基礎環境安裝 3.模型參數下載 (1) huggingface鏡像源下載 (2) modelscope魔搭社區下載 (推薦) 二、基礎使用(Linux、Window兼容) 1.Transformers庫自編代碼 三、進階使用(僅Lin…

DeepSeek 開源模型全解析(2024.1.1–2025.2.6)

目錄 一、通用大語言模型:DeepSeek-V3 系列 137 二、推理優化模型:DeepSeek-R1 系列 811 三、多模態模型:Janus 系列 10 四、生態整合與部署建議 五、總結與展望 以下為 DeepSeek 在 2024 年 1 月至 2025 年 2 月期間發布的開源模型及其…

Mac: docker安裝以后報錯Command not found: docker

文章目錄 前言解決辦法(新的)解決步驟(原來的)不推薦總結 前言 ?本操作參考 http://blog.csdn.net/enhenglhm/article/details/137955756 原作者,更詳細請,查看詳細內容請關注原作者。 一般,…

《手札·開源篇》數字化轉型助力永磁電機企業降本增效:快速設計軟件如何讓研發效率提升40%?

數字化轉型助力永磁電機企業降本增效:快速設計軟件如何讓研發效率提升40%? 一、痛點:傳統研發模式正在吃掉企業的利潤 永磁電機行業面臨兩大挑戰: 研發周期長:一款新電機從設計到量產需6-12個月,電磁計算…

0207作業

思維導圖 服務器 enum Type{TYPE_REGIST,TYPE_LOGIN };typedef struct Pack{int size;enum Type type;char buf[2048];}pack_t;typedef struct list{union Data{struct List* tail;char str[64];}data;struct List* next;struct List* prev; }List;List* create_node(){List* …

深入淺出 DeepSeek V2 高效的MoE語言模型

今天,我們來聊聊 DeepSeek V2 高效的 MoE 語言模型,帶大家一起深入理解這篇論文的精髓,同時,告訴大家如何將這些概念應用到實際中。 🌟 什么是 MoE?——Mixture of Experts(專家混合模型&#x…

RabbitMQ 從入門到精通:從工作模式到集群部署實戰(五)

#作者:閆乾苓 系列前幾篇: 《RabbitMQ 從入門到精通:從工作模式到集群部署實戰(一)》:link 《RabbitMQ 從入門到精通:從工作模式到集群部署實戰(二)》: lin…

nodejs:express + js-mdict 網頁查詢英漢詞典,能播放.spx 聲音

向 DeepSeek R1 提問: 我想寫一個Web 前端網頁,后臺用 nodejs js-mdict , 實現在線查詢英語單詞,并能播放.spx 聲音文件 1. 項目結構 首先,創建一個項目目錄,結構如下: mydict-app/ ├── public/ │ …

Linux ftrace 內核跟蹤入門

文章目錄 ftrace介紹開啟ftraceftrace使用ftrace跟蹤指定內核函數ftrace跟蹤指定pid ftrace原理ftrace與stracetrace-cmd 工具KernelShark參考 ftrace介紹 Ftrace is an internal tracer designed to help out developers and designers of systems to find what is going on i…

【抽象代數】1.1. 運算及關系

集合與映射 定義1. 設 為 的子集,定義 到 的映射 : 使得 ,稱 為 到 的嵌入映射。 定義2. 設 為 的子集, 為 到 的映射, 為 到 的映射,如果 ,稱為的開拓, 為 的限制&…