Node.js服務(wù)器環(huán)境下使用Mock.js攔截AJAX請求的教程
0、Node環(huán)境下安裝和使用Mock
# 安裝 npm install mockjs
// 使用 Mock
var Mock = require('mockjs')
var data = Mock.mock({
// 屬性 list 的值是一個數(shù)組,其中含有 1 到 10 個元素
'list|1-10': [{
// 屬性 id 是一個自增數(shù),起始值為 1,每次增 1
'id|+1': 1
}]
})
// 輸出結(jié)果
console.log(JSON.stringify(data, null, 4))
1、攔截 ajax 請求調(diào)用
方法如下
Mock.mock( rurl?, rtype?, template|function( options ) )
方法說明:
(1)rurl: 可選參數(shù)。
表示需要攔截的 URL,可以是 URL 字符串或 URL 正則。例如 /\/domain\/list\.json/、'/domian/list.json'。
(2)rtype:可選參數(shù)。
表示需要攔截的 Ajax 請求類型。例如 GET、POST、PUT、DELETE 等。
(3)template|function:必選參數(shù),只取其中一項(xiàng)。
(4)template 表示數(shù)據(jù)模板,可以是對象或字符串。例如 { 'data|1-10':[{}] }、'@EMAIL'。
(5)function 指向本次請求的 Ajax 選項(xiàng)集,含有 url、type 和 body 三個屬性,參見 XMLHttpRequest 規(guī)范。
提示
從 1.0 開始,Mock.js 通過覆蓋和模擬原生 XMLHttpRequest 的行為來攔截 Ajax 請求,不再依賴于第三方 Ajax 工具庫(例如 jQuery、Zepto 等)。
2. 攔截 Ajax 請求超時
配置攔截 Ajax 請求時的行為。支持的配置項(xiàng)有:timeout。
(1)Mock.setup( settings )
(2)settings
必選。
配置項(xiàng)集合。
(3)timeout
可選。
指定被攔截的 Ajax 請求的響應(yīng)時間,單位是毫秒。值可以是正整數(shù),例如 400,表示 400 毫秒 后才會返回響應(yīng)內(nèi)容;也可以是橫杠 '-' 風(fēng)格的字符串,例如 '200-600',表示響應(yīng)時間介于 200 和 600 毫秒之間。默認(rèn)值是'10-100'。
3. 本人理解的攔截
使用同一個方法名,去欄截指定方法。通過 call 修改 this 指向,到達(dá) 攔截。
// 實(shí)現(xiàn)原理
// 定義父類
var mock_ajax = function(str){
this.showName=function(){
console.log(str);
}
return this;
};
// 定義子類
var jquery_ajax = function(str){
this.showName = function(){
console.log('ajax');
}
return this;
};
jquery_ajax('').showName();// -> ajax
// 改變 this 指向
mock_ajax.call(jquery_ajax,'111');
// 調(diào)用
jquery_ajax.showName();
- node.js+jQuery實(shí)現(xiàn)用戶登錄注冊AJAX交互
- Node.js如何響應(yīng)Ajax的POST請求并且保存為JSON文件詳解
- Node.js獲取前端ajax提交的request信息
- Node.js配合node-http-proxy解決本地開發(fā)ajax跨域問題
- node.js+Ajax實(shí)現(xiàn)獲取HTTP服務(wù)器返回?cái)?shù)據(jù)
- node.js chat程序如何實(shí)現(xiàn)Ajax long-polling長鏈接刷新模式
- Ajax異步文件上傳與NodeJS express服務(wù)端處理
- Ajax 的初步實(shí)現(xiàn)(使用vscode+node.js+express框架)
相關(guān)文章
Node.js中MongoDB更新數(shù)據(jù)的兩種方法
本文主要介紹了Node.js中MongoDB更新數(shù)據(jù)的兩種方法,主要包括使用原生的 MongoDB 驅(qū)動程序或者使用 Mongoose 來更新 MongoDB 數(shù)據(jù),2023-12-12
node.js中module模塊的功能理解與用法實(shí)例分析
這篇文章主要介紹了node.js中module模塊的功能理解與用法,結(jié)合實(shí)例形式分析了node.js module模塊的基本功能、原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2020-02-02
Node.js實(shí)現(xiàn)mysql連接池使用事務(wù)自動回收連接的方法示例
這篇文章主要介紹了Node.js實(shí)現(xiàn)mysql連接池使用事務(wù)自動回收連接的方法,結(jié)合實(shí)例形式分析了node.js操作mysql連接池實(shí)現(xiàn)基于事務(wù)的連接回收操作相關(guān)技巧,需要的朋友可以參考下2018-02-02
npm安裝的全局包/工具不能使用,不是內(nèi)部/外部命令的解決方法
這篇文章主要給大家介紹了關(guān)于npm安裝的全局包/工具不能使用,不是內(nèi)部/外部命令的解決方法,文中通過圖文將解決的方法介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03
node+koa+canvas繪制出貨單、收據(jù)票據(jù)的方法
在生成票據(jù)需求中,我們會想到前端生成或者后端生成返回圖片地址訪問兩個方法,前端生成則不需要調(diào)用接口,而后端是在完成整個流程時就進(jìn)行生成然后把上傳的地址保存數(shù)據(jù)庫,這篇文章主要介紹了node+koa+canvas繪制出貨單,收據(jù),票據(jù),需要的朋友可以參考下2022-09-09

