91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

express+mockjs如何實現模擬后臺數據發送功能

發布時間:2021-04-20 13:32:31 來源:億速云 閱讀:200 作者:小新 欄目:web開發

這篇文章給大家分享的是有關express+mockjs如何實現模擬后臺數據發送功能的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

js有什么特點

1、js屬于一種解釋性腳本語言;2、在絕大多數瀏覽器的支持下,js可以在多種平臺下運行,擁有著跨平臺特性;3、js屬于一種弱類型腳本語言,對使用的數據類型未做出嚴格的要求,能夠進行類型轉換,簡單又容易上手;4、js語言安全性高,只能通過瀏覽器實現信息瀏覽或動態交互,從而有效地防止數據的丟失;5、基于對象的腳本語言,js不僅可以創建對象,也能使用現有的對象。

模擬數據方法

1.通過js變量模擬后臺數據

  優點:不需要服務器

  缺點:需要造很多變量,同時還要將變量在我們的有效代碼中使用,最后還得刪除

2.通過ajax請求json文件

  優點:只需要配置路徑,就可以訪問,進入聯調階段不用修改大量的js代碼

  缺點:ajax存在跨域問題,通常無法請求本地文件,即使火狐也存在不能訪問不同文件目錄下的json文件,通常需要通過ide或者自己手動啟動服務

3.用nodejs自己寫一個專門用來發送請求的服務,不包含業務邏輯

  優點:前端的代碼進入聯調階段只需要修改一個basePath,所有的接口名字都可以和約定好的路徑保持一致,可以測試post請求,模擬網絡環境

  缺點:自己要寫一個后臺

1、2兩種模擬數據的方式適合用來做demo,但是如果做得是上線項目,我們還是推薦使用自己搭建一個node后臺

1.準備node環境、npm/cnpm

2.安裝express、mockjs

express+mockjs如何實現模擬后臺數據發送功能

3.創建服務端文件server.js,引入相關模塊

let express = require('express'); //引入express模塊
let Mock = require('mockjs');  //引入mock模塊
let app = express();    //實例化express

4.配置接口路由,設置監聽端口

/**
 * 配置test.action路由
 * @param {[type]} req [客戶端發過來的請求所帶數據]
 * @param {[type]} res [服務端的相應對象,可使用res.send返回數據,res.json返回json數據,res.down返回下載文件]
 */
app.all('/test.action', function(req, res) {
 res.send('hello world');
});
/**
 * 監聽8090端口
 */
app.listen('8090');

  此時我們直接訪問http://localhost:8090/test.action,就可以直接在界面看到'hello world'文字

5.使用mockjs返回格式化json數據

app.all('/test.action', function(req, res) {
 /**
  * mockjs中屬性名‘|'符號后面的屬性為隨機屬性,數組對象后面的隨機屬性為隨機數組數量,正則表達式表示隨機規則,+1代表自增
  */
 res.json(Mock.mock({
  "status": 200,
  "data|1-9": [{
   "name|5-8": /[a-zA-Z]/,
   "id|+1": 1,
   "value|0-500": 20
  }]
 }));
});

  此時我們再訪問頁面數據,我們就可以得到一份隨機的json數據

6.創建模擬數據文件夾testData,創建模擬數據json文件(注意:json文件中不能使用正則,且對象屬性必須為雙引號字符串)

7.遍歷模擬數據文件,生成對應路由

/*readdir讀取目錄下所有文件*/
fs.readdir('./testData', function(err, files) {
 if(err) {
  console.log(err);
 } else {
  /*成功讀取文件,取得文件名,拼接生成對應action,監聽對應接口并返回對應文件數據*/
  files.forEach(function(v, i) {
   app.all(`/${v.replace(/json/, 'action')}`, function(req, res) {
    fs.readFile(`./testData/${v}`, 'utf-8', function(err, data) {
     if(err) {
      console.log(err);
     } else {
      res.json(Mock.mock(JSON.parse(data)));
     }
    })
   })
  })
 }
})

至此,我們的node服務器已經搭建成功,使用node server.js運行服務器,我們就可以直接在前端訪問接口,但是如果只是單純的生成后臺,前端頁面不通過后臺進行訪問的話,存在跨域問題,如果需要解決,可以在后臺添加跨域請求

/*為app添加中間件處理跨域請求*/
app.use(function(req, res, next) {
 res.header("Access-Control-Allow-Origin", "*");
 res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
 res.header("Access-Control-Allow-Headers", "X-Requested-With");
 res.header('Access-Control-Allow-Headers', 'Content-Type');
 next();
});

感謝各位的閱讀!關于“express+mockjs如何實現模擬后臺數據發送功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

上杭县| 桂阳县| 潮州市| 河东区| 安福县| 濮阳市| 铁力市| 时尚| 潮安县| 商丘市| 衡水市| 兰州市| 绵竹市| 和龙市| 古丈县| 资讯| 楚雄市| 同江市| 漳州市| 秦安县| 东丽区| 三门县| 蒲江县| 尼玛县| 措勤县| 鲁甸县| 丹棱县| 惠水县| 冕宁县| 静宁县| 赫章县| 张家界市| 池州市| 专栏| 民权县| 通河县| 纳雍县| 芦溪县| 麻阳| 安义县| 潞城市|