1. 程式人生 > 其它 >node+mock模擬介面傳遞資料實現前後端分離

node+mock模擬介面傳遞資料實現前後端分離

1、問題:目前公司的開發模式是後端寫介面,然後前端寫頁面,等前端頁面寫完了再對後端介面,與後端聯調實現功能,這就導致跟後端對接介面聯調的時候太累了,耦合太緊,交流半天才解決一丟丟問題,前端改的時候後端閒著,後端改的時候前端閒著的,溝通成本太高,效率太低下,在我看來這並不是真正意義上的前後端分離,需要前後端解耦。

2、解決(因公司問題尚未解決):在專案初期前後端一起根據需求編寫介面文件,使介面符合邏輯,等介面文件出來後,前後端分離,後端根據介面文件編寫後端介面並自己調通,前端則根據介面文件配置模擬資料來寫頁面實現功能,到最後前後端把各自專案打包放上伺服器測試,誰的錯誰改。

3、前端實現node+mock模擬介面:

建立一個資料夾並初始化

npm init -y

安裝需要用到的依賴

express 創建極簡的web框架
npm install express
mockjs 創建出需要的模擬資料
npm install mockjs
body-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

就可以看到介面呼叫成功並返回需要的模擬資料