用koa2+mysql搭建后端服務(wù)器

前言

??? 近段時(shí)間在學(xué)習(xí)react,想做個(gè)小項(xiàng)目,奈何沒(méi)有后端,故自己上網(wǎng)查找一些資料,并通過(guò)自己的理解搭建后端服務(wù)器。在此特別感謝 http://www.imooc.com/article/80671 給我的支持。下面是個(gè)人一些見(jiàn)解:

一? 安裝環(huán)境要求

??? node版本需求:必須在 7.6.0 以上,版本低的請(qǐng)到 node官網(wǎng) 下載最新版本。

二? 創(chuàng)建項(xiàng)目

??? 1、使用 koa-generator 搭建項(xiàng)目:? 通過(guò)win+R進(jìn)入管理窗口,輸入 npm install koa-generator -g 進(jìn)行全局安裝koa-generator

???? 注意: 由于npm太慢,建議使用淘寶npm鏡像:

永久使用: npm config set registry https://registry.npm.taobao.org

?? 2、 進(jìn)入相應(yīng)的目錄下,使用 koa-generator 生成koa2項(xiàng)目 命令: koa2 “項(xiàng)目名稱”

?? 3、 進(jìn)行項(xiàng)目,然后通過(guò) npm install 安裝依賴

?? 4、輸入 npm start 啟動(dòng)服務(wù)。

打開(kāi)瀏覽器,在地址框輸入 http://localhost:3000/,看到“Hello Koa 2!” 說(shuō)明啟動(dòng)成功了。

注意:由于react腳手架搭建出來(lái)的端口也是3000,可能會(huì)造成端口被占用情況??梢栽?bin/www下修改端口。修改完之后重啟項(xiàng)目。

三? 安裝mysql數(shù)據(jù)庫(kù)

?? 到官網(wǎng) https://www.mysql.com/downloads 下載對(duì)應(yīng)版本,并安裝數(shù)據(jù)庫(kù)。安裝教程可參考:https://blog.csdn.net/qq_37350706/article/details/81707862

四? 安裝Sequelize

??? Sequelize類是引用sequlize模塊后獲取一個(gè)頂級(jí)對(duì)象,我們通過(guò)它來(lái)創(chuàng)建sequlize實(shí)例,也可以通過(guò)該對(duì)象來(lái)獲取模內(nèi)其它對(duì)象的引用,如:Utils工具類、Transaction事務(wù)類等。創(chuàng)建實(shí)例后,可以通過(guò)實(shí)例來(lái)創(chuàng)建或定義Model(模型)、執(zhí)行查詢、同步數(shù)據(jù)庫(kù)結(jié)構(gòu)等操作。

安裝sequelize

??? npm install sequelize --save

安裝 mysql , mysql2模塊

?? npm install mysql mysql2 --save

五 使用 Sequelize 初始化連接池

?? 在根目錄創(chuàng)建 config/db.js 文件:(注意: 所連接的數(shù)據(jù)庫(kù)必須存在,若不存在先創(chuàng)建數(shù)據(jù)庫(kù),創(chuàng)建數(shù)據(jù)庫(kù)命令: CREATE DATABASE blogs DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

sequelize選項(xiàng)配置

六? 梳理項(xiàng)目結(jié)構(gòu)

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

七? 創(chuàng)建數(shù)據(jù)表模型

??? 新建 schema 文件夾,該文件夾用來(lái)創(chuàng)建數(shù)據(jù)庫(kù)的模型。舉個(gè)例子: 創(chuàng)建一個(gè)文章的數(shù)據(jù)模型。在schema文件夾下創(chuàng)建一個(gè)article.js文件:

創(chuàng)建article模型

八? 應(yīng)用數(shù)據(jù)表模型

??? 創(chuàng)建modules/article.js 用于schema文件夾內(nèi)的模型使用。主要代碼為:

???? const db = require('../config/db')???????? // 引入配置文件

???? const Sequelize = db.sequelize;

???? const Article = Sequelize.import("../schema/article");???? // 引入文章數(shù)據(jù)表模型文件

???? Article.sync({ force: false });??? // 自動(dòng)創(chuàng)建表 (加force:true, 會(huì)先刪掉表后再建表)

源代碼如下:

article model使用

九? 數(shù)據(jù)表控制器

??? 主要負(fù)責(zé)功能處理部分: 收集前端所傳過(guò)來(lái)的數(shù)據(jù),將數(shù)據(jù)保存到數(shù)據(jù)庫(kù),將結(jié)果返回給前端。

article 控制部分

十? 路由

??? 在根目錄下創(chuàng)建router/index.js 這文件可以理解為向外暴露API接口,實(shí)際上就是路由的訪問(wèn),然后通過(guò)控制器=>模型處理=>返回?cái)?shù)據(jù)

路由文件

十一? 配置跨域

??? 引入 koa-cors ,安裝依賴后,在app.js中加入下面代碼:

const cors = require('koa-cors')

app.use(cors())

十二? 服務(wù)啟動(dòng)

在cmd窗口下輸入 npm start 啟動(dòng)項(xiàng)目,當(dāng)看到 SHOW INDEX FROM 'article' 表示數(shù)據(jù)庫(kù)創(chuàng)建且連接成功。

啟動(dòng)項(xiàng)目成功

十三? 接口測(cè)試

使用 postman 在地址欄輸入url地址,并輸入相關(guān)參數(shù)即可完成測(cè)試。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容