node+mock模擬介面傳遞資料實現前後端分離
阿新 • • 發佈:2022-01-26
1、問題:目前公司的開發模式是後端寫介面,然後前端寫頁面,等前端頁面寫完了再對後端介面,與後端聯調實現功能,這就導致跟後端對接介面聯調的時候太累了,耦合太緊,交流半天才解決一丟丟問題,前端改的時候後端閒著,後端改的時候前端閒著的,溝通成本太高,效率太低下,在我看來這並不是真正意義上的前後端分離,需要前後端解耦。
2、解決(因公司問題尚未解決):在專案初期前後端一起根據需求編寫介面文件,使介面符合邏輯,等介面文件出來後,前後端分離,後端根據介面文件編寫後端介面並自己調通,前端則根據介面文件配置模擬資料來寫頁面實現功能,到最後前後端把各自專案打包放上伺服器測試,誰的錯誰改。
3、前端實現node+mock模擬介面:
建立一個資料夾並初始化
npm init -y
安裝需要用到的依賴
express 創建極簡的web框架npm install expressmockjs 創建出需要的模擬資料
npm install mockjsbody-parser 用於處理post請求中請求體的資料
npm install body-parser
新建一個app.js檔案,寫入以下程式碼
// 引入express模組 var express = require('express') // 處理post提交引數 var bodyParser = require('body-parser') //引入mock資料var Mock = require('mockjs') // 呼叫express方法 var app = express() // 路由----> 程式 初始路徑 app.get('/', function (req, res) { res.send({ message: '服務已成功開啟!' }) }) // 處理傳輸的post資料格式 app.use(bodyParser.json()) app.use( bodyParser.urlencoded({ extended: false, //拓展模式 limit: 2 * 1024 * 1024 //限制2m}) ) //介面 app.post('/data', function (req, res) { res.send({ ...Mock.mock({ result: { 'list|10-60': [ { id: '@increment(1)', title: '@ctitle', content: '@cparagraph', add_time: '@date(yyyy-MM-dd hh:mm:ss)' } ], 'total|60-120': 120 }, code: 200 }) }) }) // 監聽服務地址 app.listen(8090, function () { console.log('開啟服務成功!') })
在終端啟動app.js服務
node app.js
在其他地方呼叫介面(兩種方式)
http://127.0.0.1:8090/data
http://localhost:8090/data
就可以看到介面呼叫成功並返回需要的模擬資料