前言
??? 近段時間在學習react,想做個小項目,奈何沒有后端,故自己上網查找一些資料,并通過自己的理解搭建后端服務器。在此特別感謝 http://www.imooc.com/article/80671 給我的支持。下面是個人一些見解:
一? 安裝環境要求
??? node版本需求:必須在 7.6.0 以上,版本低的請到 node官網 下載最新版本。
二? 創建項目
??? 1、使用 koa-generator 搭建項目:? 通過win+R進入管理窗口,輸入 npm install koa-generator -g 進行全局安裝koa-generator
???? 注意: 由于npm太慢,建議使用淘寶npm鏡像:
永久使用: npm config set registry https://registry.npm.taobao.org
?? 2、 進入相應的目錄下,使用 koa-generator 生成koa2項目 命令: koa2 “項目名稱”
?? 3、 進行項目,然后通過 npm install 安裝依賴
?? 4、輸入 npm start 啟動服務。
打開瀏覽器,在地址框輸入 http://localhost:3000/,看到“Hello Koa 2!” 說明啟動成功了。
注意:由于react腳手架搭建出來的端口也是3000,可能會造成端口被占用情況。可以在/bin/www下修改端口。修改完之后重啟項目。
三? 安裝mysql數據庫
?? 到官網 https://www.mysql.com/downloads 下載對應版本,并安裝數據庫。安裝教程可參考:https://blog.csdn.net/qq_37350706/article/details/81707862
四? 安裝Sequelize
??? Sequelize類是引用sequlize模塊后獲取一個頂級對象,我們通過它來創建sequlize實例,也可以通過該對象來獲取模內其它對象的引用,如:Utils工具類、Transaction事務類等。創建實例后,可以通過實例來創建或定義Model(模型)、執行查詢、同步數據庫結構等操作。
安裝sequelize
??? npm install sequelize --save
安裝 mysql , mysql2模塊
?? npm install mysql mysql2 --save
五 使用 Sequelize 初始化連接池
?? 在根目錄創建 config/db.js 文件:(注意: 所連接的數據庫必須存在,若不存在先創建數據庫,創建數據庫命令: CREATE DATABASE blogs DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;)
六? 梳理項目結構
七? 創建數據表模型
??? 新建 schema 文件夾,該文件夾用來創建數據庫的模型。舉個例子: 創建一個文章的數據模型。在schema文件夾下創建一個article.js文件:
八? 應用數據表模型
??? 創建modules/article.js 用于schema文件夾內的模型使用。主要代碼為:
???? const db = require('../config/db')???????? // 引入配置文件
???? const Sequelize = db.sequelize;
???? const Article = Sequelize.import("../schema/article");???? // 引入文章數據表模型文件
???? Article.sync({ force: false });??? // 自動創建表 (加force:true, 會先刪掉表后再建表)
源代碼如下:
九? 數據表控制器
??? 主要負責功能處理部分: 收集前端所傳過來的數據,將數據保存到數據庫,將結果返回給前端。
十? 路由
??? 在根目錄下創建router/index.js 這文件可以理解為向外暴露API接口,實際上就是路由的訪問,然后通過控制器=>模型處理=>返回數據
十一? 配置跨域
??? 引入 koa-cors ,安裝依賴后,在app.js中加入下面代碼:
const cors = require('koa-cors')
app.use(cors())
十二? 服務啟動
在cmd窗口下輸入 npm start 啟動項目,當看到 SHOW INDEX FROM 'article' 表示數據庫創建且連接成功。
十三? 接口測試
使用 postman 在地址欄輸入url地址,并輸入相關參數即可完成測試。