Vue.js + Node.js + Express + MySQL示例:構(gòu)建全棧CRUD應(yīng)用程序

本文翻譯自Vue.js + Node.js + Express + MySQL example: Build a full-stack CRUD Application

Vue.js + Node.js + Express + MySQL example: Build a full-stack CRUD Application

上次修改時(shí)間:2020年10月16日 bezkoder Full Stack潜的,Node.js,Vue.js

在本教程中拔稳,我將向您展示如何構(gòu)建一個(gè)全棧(Vue.js + Node.js + Express + MySQL)的CRUD應(yīng)用程序示例扭粱。 后端服務(wù)器將Node.js + Express用于REST API扶歪,前端是帶有Vue Router和axios的Vue客戶端狞谱。

更過實(shí)踐:Node.js Express + Vue.js: JWT Authentication & Authorization example

Serverless with Firebase:

Vue.js + Node.js + Express + MySQL示例概述

我們將構(gòu)建一個(gè)全棧教程的應(yīng)用程序包括如下幾點(diǎn):

  • 教程具有ID掸刊,標(biāo)題免糕,描述,發(fā)布狀態(tài)忧侧。

  • 用戶可以創(chuàng)建石窑,檢索,更新蚓炬,刪除教程松逊。

  • 有一個(gè)搜索框,用于按標(biāo)題查找教程肯夏。
    下面是示例的截圖:

  • 添加一個(gè)對象:


    Add an object
  • 顯示所有的對象:


    Show all objects
  • 點(diǎn)擊Edit按鈕更新對象:

    update an object

    在這個(gè)頁面中经宏,你可以:

    • 使用Publish/UnPublished按鈕將狀態(tài)更改成Published/Pending
    • 使用Delete按鈕從MySQL數(shù)據(jù)庫中刪除對象
    • 使用Update按鈕更新數(shù)據(jù)庫中對象的詳細(xì)信息
  • 根據(jù)title字段查找對象

    Search objects by field ‘title’

全棧CRUD應(yīng)用程序架構(gòu)

我們將構(gòu)建一個(gè)如下體系結(jié)構(gòu)的應(yīng)用程序:


Full-stack CRUD App Architecture
  • Node.js Express導(dǎo)出REST API,并使用Sequelize ORM與MySQL數(shù)據(jù)庫進(jìn)行交互驯击。
  • Vue客戶端使用axios發(fā)送HTTP請求并獲取HTTP響應(yīng)烁兰,在組件中使用數(shù)據(jù)。 Vue路由器用于頁面間的導(dǎo)航余耽。

Node.js Express后端

總覽

下面是Nodejs Express應(yīng)用導(dǎo)出的一些APIs:

Methods Urls Actions
GET api/tutorials get all Tutorials
GET api/tutorials/:id get Tutorial by id
POST api/tutorials add new Tutorial
PUT api/tutorials/:id update Tutorial by id
DELETE api/tutorials/:id remove Tutorial by id
DELETE api/tutorials remove all Tutorials
GET api/tutorials?title=[kw] find all Tutorials which title contains 'kw'

項(xiàng)目結(jié)構(gòu)

[圖片上傳失敗...(image-4ae86f-1604851901712)]

  • db.config.js導(dǎo)出MySQL連接和Sequelize的配置參數(shù)缚柏。
  • 在server.js的Express Web服務(wù)器中,我們配置CORS碟贾,初始化并運(yùn)行Express REST API币喧。
  • 接下來轨域,我們在models/index.js中添加MySQL數(shù)據(jù)庫的配置,在models/tutorial.model.js中創(chuàng)建Sequelize數(shù)據(jù)模型杀餐。
  • controller中的教程控制器干发。
  • 在tutorial.routes.js中處理所有CRUD操作(包括自定義查找器)的路由。

實(shí)現(xiàn)

您可以在文章中逐步找到實(shí)現(xiàn)此Node.js Express應(yīng)用程序的步驟:
Node.js Rest APIs example with Express, Sequelize & MySQL

Vue.js前端

總覽

[圖片上傳失敗...(image-3ec37e-1604851901712)]

  • App組件是具有route_view的容器史翘。 它具有鏈接到routes路徑的導(dǎo)航欄枉长。
  • TutorialsList組件獲取并顯示Tutorials。
  • Tutorial組件具有用于根據(jù)`:id'編輯教程詳細(xì)信息的表單琼讽。
  • AddTutorial組件具有用于提交新教程的表單必峰。
  • 這些組件調(diào)用TutorialDataService方法,這些方法使用axios發(fā)出HTTP請求并接收響應(yīng)钻蹬。

技術(shù)

  • vue: 2.6.10
  • vue-router: 3.1.3
  • axios: 0.19.0

項(xiàng)目結(jié)構(gòu)

[圖片上傳失敗...(image-2de8c8-1604851901712)]

  • package.json包含3個(gè)主要的模塊: vue, vue-router, axios吼蚁。
  • 有三個(gè)組件: TutorialsList, Tutorial, AddTutorial
  • router.js為每個(gè)組件定義了路由问欠。
  • http-common.js使用HTTP基準(zhǔn)Url和請求頭初始化axios.
  • TutorialDataService中有用于發(fā)送HTTP請求的Apis的方法肝匆。
  • vue.config.js為Vue客戶端配置端口。

實(shí)現(xiàn)

您可以在文章中逐步找到實(shí)現(xiàn)此Vue App的步驟:
Vue.js CRUD App with Vue Router & Axios
或者使用Vuetify:Vuetify data-table example with a CRUD App

Vuetify data-table example with a CRUD App

結(jié)論

現(xiàn)在顺献,我們在構(gòu)建全棧CRUD應(yīng)用程序時(shí)概述了Vue.js + Node.js Express + MySQL示例旗国。

我們還介紹使用Express&Sequelize ORM的REST API的客戶端-服務(wù)器體系結(jié)構(gòu),以及用于構(gòu)建前端應(yīng)用程序以發(fā)出HTTP請求和使用響應(yīng)的Vue.js項(xiàng)目結(jié)構(gòu)注整。

接下來的教程向您展示有關(guān)如何實(shí)現(xiàn)系統(tǒng)的更多詳細(xì)信息:

如果你想要一個(gè)TypeScript版本的Vue App能曾,可以參考如下文章:
Vue Typescript CRUD Application to consume Web API example

分頁:

Serverless with Firebase:

祝您學(xué)習(xí)愉快,再見设捐!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末借浊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子萝招,更是在濱河造成了極大的恐慌,老刑警劉巖存捺,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件槐沼,死亡現(xiàn)場離奇詭異,居然都是意外死亡捌治,警方通過查閱死者的電腦和手機(jī)岗钩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肖油,“玉大人兼吓,你說我怎么就攤上這事∩梗” “怎么了视搏?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵审孽,是天一觀的道長。 經(jīng)常有香客問我浑娜,道長佑力,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任筋遭,我火速辦了婚禮打颤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘漓滔。我一直安慰自己编饺,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布响驴。 她就那樣靜靜地躺著反肋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪踏施。 梳的紋絲不亂的頭發(fā)上石蔗,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天,我揣著相機(jī)與錄音畅形,去河邊找鬼养距。 笑死,一個(gè)胖子當(dāng)著我的面吹牛日熬,可吹牛的內(nèi)容都是我干的棍厌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼竖席,長吁一口氣:“原來是場噩夢啊……” “哼耘纱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起毕荐,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤束析,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后憎亚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體员寇,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年第美,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蝶锋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片彬伦。...
    茶點(diǎn)故事閱讀 39,727評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡筋搏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出举畸,到底是詐尸還是另有隱情,我是刑警寧澤躯舔,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布驴剔,位于F島的核電站,受9級特大地震影響庸毫,放射性物質(zhì)發(fā)生泄漏仔拟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一飒赃、第九天 我趴在偏房一處隱蔽的房頂上張望利花。 院中可真熱鬧,春花似錦载佳、人聲如沸炒事。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挠乳。三九已至,卻和暖如春姑躲,著一層夾襖步出監(jiān)牢的瞬間睡扬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工黍析, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留卖怜,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓阐枣,卻偏偏與公主長得像马靠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子蔼两,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容