摘要:下面來介紹一種讓前后臺并行開發(fā)。服務(wù)在端口上已啟用我們需要在同級目錄添加以下文件中的內(nèi)容如下訪問時(shí)查詢成功張三訪問時(shí)我們現(xiàn)在在瀏覽器中訪問我們初步模擬數(shù)據(jù)基本就完成了。
在我們平時(shí)項(xiàng)目剛啟動時(shí),由于后臺也是剛開始開發(fā),我們前端往往在開發(fā)過程中沒有數(shù)據(jù)和接口請求的,都要造一些假數(shù)據(jù)進(jìn)去或者使用mock造一些數(shù)據(jù)進(jìn)去,但是這樣的話往往會偶合一些沒用的代碼進(jìn)去。到時(shí)候還得刪除。下面來介紹一種 express + mock 讓前后臺并行開發(fā)。
前后需要先商量好數(shù)據(jù)格式,等等一系列細(xì)節(jié)問題,先不多說直接上代碼
app.js
"use strict"; const express = require("express"); const app = express(); // port let NODE_PORT = process.env.PORT || 4000; // 監(jiān)聽 /user app.use("/user", function(req, res) { // 讓接口 500-1000ms 返回 好讓頁面有個(gè)loading setTimeout(() => { res.json({ status: 1, msg: "查詢成功", data: { name: "張三" } }); }, Math.random() * 500 + 500); }); app.listen(NODE_PORT, function() { console.log("mock服務(wù)在" + NODE_PORT + "端口上已啟用!"); });
接下來我們當(dāng)前文件打開命令窗口運(yùn)行 node app.js
然后打開瀏覽器 輸入 http://localhost:4000/user
就完成了一個(gè)簡單的模擬數(shù)據(jù),接下來我們完善下需求
如果我們在本地開發(fā)中有時(shí)候 端口不同會報(bào)跨域問題,所以我們需要在 app.js 添加一下代碼
const cors = require("cors"); app.use(cors({ origin: "*", methods: ["GET", "POST", "PUT", "DELETE"], allowedHeaders: ["conten-Type", "Authorization"] }));
這樣就可以在別的端口訪問或者別的ip內(nèi)網(wǎng)(你同時(shí))訪問了。
如果我們需要訪問一些靜態(tài)文件的可以添加一下代碼
// "./" 根據(jù)自己的需求自己配置 app.use(express.static(path.join(__dirname, "./")));
// 配置nodeman熱更新
nodemon 可以按照需求自己配置
接下來繼續(xù)完善, 在開發(fā)中我們不可能只有一個(gè)接口,所以我們在優(yōu)化下。
app.js
"use strict"; const express = require("express"); const cors = require("cors"); const path = require("path"); const userRoutes = require("./user"); const areaRoutes = require("./area"); const nameListRoutes = require("./name-list"); const app = express(); app.use(cors({ origin: "*", methods: ["GET", "POST", "PUT", "DELETE"], allowedHeaders: ["conten-Type", "Authorization"] })); // port let NODE_PORT = process.env.PORT || 4000; app.use(express.static(path.join(__dirname, "./"))); app.use("/user", userRoutes); app.use("/area", areaRoutes); app.use("/nameList", nameListRoutes); app.listen(NODE_PORT, function() { console.log("mock服務(wù)在" + NODE_PORT + "端口上已啟用!"); });
我們需要在同級目錄添加以下文件
./user/index.js , /user/area.js, /name-list/index.js
./user/index.js 中的內(nèi)容如下
"use strict"; const express = require("express"); const Mock = require("mockjs"); const apiRoutes = express.Router(); let random = Math.random() * 500 + 500; // 訪問 /user/ 時(shí) apiRoutes.get("/", function(req, res) { setTimeout(() => { res.json({ status: 1, msg: "查詢成功", data: { name: "張三" } }); }, random); }); // 訪問 /user/1111 時(shí) apiRoutes.get("/idList", function(req, res) { setTimeout(() => { res.json({ status: 1, msg: "OK", data: Mock.mock({ "list|1-10": [{ "id|+1": 1 }] }) }); }, random); }); module.exports = apiRoutes;
我們現(xiàn)在在瀏覽器中訪問
我們初步模擬數(shù)據(jù)基本就完成了。
接下需要在項(xiàng)目中用了先區(qū)分環(huán)境
// 判斷是否是本地開發(fā) const isDev = process.env.NODE_ENV ==="development"; // 設(shè)置 host 本地走mock 生產(chǎn)環(huán)境走相對路徑 /user/ const host = isDev ? "http://localhost:4000" : "" fetch(`${host}/user/`) .then(response => { return response.json(); }) .then(data => { console.log(data ); });
假設(shè)我們在本地訪問
數(shù)據(jù)都能拿到了, 在試一下 別的域名訪問
跨域問題也OK。
我們在設(shè)置下 package.json 在你本地開發(fā)的命令后臺添加 && node xx/aap.js 或者多帶帶一個(gè)命令窗口運(yùn)行
好了介紹到此。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/107976.html
摘要:并將請求通過特定的,開發(fā)環(huán)境指定到對應(yīng)的本地文件。聯(lián)調(diào)或者生產(chǎn)環(huán)境發(fā)布前,再修改特定的。聯(lián)調(diào)發(fā)布前,也同樣需要將關(guān)鍵代碼進(jìn)行處理,將請求真正發(fā)送到后端服務(wù)器中,而不是被攔截到。項(xiàng)目列表項(xiàng)目面板,展示已存在的所有項(xiàng)目。 前言 感興趣的話,可以star關(guān)注支持下,項(xiàng)目地址。 在日常的開發(fā)中,前端mock后端api數(shù)據(jù),是實(shí)現(xiàn)前后端并行開發(fā)非常重要的一步。有了數(shù)據(jù),才能更加真實(shí)反饋實(shí)際操作流...
摘要:背景隨著互聯(lián)網(wǎng)應(yīng)用工程規(guī)模的日益復(fù)雜化和精細(xì)化,我們在開發(fā)一個(gè)標(biāo)準(zhǔn)應(yīng)用的早已開始告別單干模式,為了提升開發(fā)效率,前后端分離的需求越來越被重視,前端負(fù)責(zé)展現(xiàn)交互邏輯,后端負(fù)責(zé)業(yè)務(wù)數(shù)據(jù)接口,基本上也成為了我們?nèi)粘m?xiàng)目分工中的標(biāo)配,但是前后端分離 背景 隨著互聯(lián)網(wǎng)應(yīng)用工程規(guī)模的日益復(fù)雜化和精細(xì)化,我們在開發(fā)一個(gè)標(biāo)準(zhǔn)web應(yīng)用的早已開始告別單干模式,為了提升開發(fā)效率,前后端分離的需求越來越被重...
摘要:前后端的界限是按照瀏覽器和服務(wù)器的劃分。前后端彼此互不關(guān)聯(lián)。關(guān)于作者本文部分圖片段落參考文章實(shí)踐中的前后端分離。淘寶前后端分離實(shí)踐本文源碼詳見服務(wù)端代碼。 一、起源 (故事純屬虛構(gòu),如有雷同,純屬巧合)傳說在很久很久以前,我們有志之士有了個(gè)創(chuàng)業(yè)的想法,于是乎開始了自己的創(chuàng)業(yè)之夢,但是人手不足啊,于是乎所有角色老子一個(gè)人全包了: Roles: PM, DBA, RD, FED, Des...
摘要:前后端的界限是按照瀏覽器和服務(wù)器的劃分。前后端彼此互不關(guān)聯(lián)。關(guān)于作者本文部分圖片段落參考文章實(shí)踐中的前后端分離。淘寶前后端分離實(shí)踐本文源碼詳見服務(wù)端代碼。 一、起源 (故事純屬虛構(gòu),如有雷同,純屬巧合)傳說在很久很久以前,我們有志之士有了個(gè)創(chuàng)業(yè)的想法,于是乎開始了自己的創(chuàng)業(yè)之夢,但是人手不足啊,于是乎所有角色老子一個(gè)人全包了: Roles: PM, DBA, RD, FED, Des...
閱讀 1751·2021-09-26 09:46
閱讀 3032·2021-09-22 15:55
閱讀 2620·2019-08-30 14:17
閱讀 3037·2019-08-26 11:59
閱讀 1819·2019-08-26 11:35
閱讀 3164·2019-08-26 10:45
閱讀 3161·2019-08-23 18:28
閱讀 1147·2019-08-23 18:21