Home >Web Front-end >JS Tutorial >Tutorial on using Mock.js to intercept AJAX requests in Node.js server environment

Tutorial on using Mock.js to intercept AJAX requests in Node.js server environment

高洛峰
高洛峰Original
2017-03-28 14:38:512346browse

0. Install and use Mock in Node environment

# 安装
npm install mockjs
// 使用 Mock
var Mock = require('mockjs')
var data = Mock.mock({
  // 属性 list 的值是一个数组,其中含有 1 到 10 个元素
  'list|1-10': [{
    // 属性 id 是一个自增数,起始值为 1,每次增 1
    'id|+1': 1
  }]
})
// 输出结果
console.log(JSON.stringify(data, null, 4))

1. Intercept ajax request call
The method is as follows

Mock.mock( rurl?, rtype?, template|function( options ) )

Method description:
(1) rurl: Optional parameter.

represents the URL that needs to be intercepted, which can be a URL string or URL regular. For example /\/domain\/list\.json/, '/domian/list.json'.
(2)rtype: optional parameter.

indicates the type of Ajax request that needs to be intercepted. For example GET, POST, PUT, DELETE, etc.
(3) template|function: required parameters, only take one of them.

(4)template represents the data template, which can be an object or a string. For example { 'data|1-10':[{}] }, '@EMAIL'.
(5) function points to the Ajax option set of this request, containing three attributes: url, type and body. See the XMLHttpRequest specification.
Tips

Starting from 1.0, Mock.js intercepts Ajax requests by overriding and simulating the behavior of native XMLHttpRequest, and no longer relies on third-party Ajax tool libraries (such as jQuery, Zepto, etc.).

2. Interception of Ajax request timeout
Configure the behavior when intercepting Ajax requests. Supported configuration items include: timeout.

(1)Mock.setup( settings )
(2)settings
Required.
Configuration item collection.
(3) timeout
Optional.
Specify the response time of the intercepted Ajax request, in milliseconds. The value can be a positive integer, such as 400, which means that the response content will be returned after 400 milliseconds; or it can be a hyphen '-' style string, such as '200-600', which means that the response time is between 200 and 600 milliseconds. The default value is '10-100'.

3. The interception I understand
Use the same method name and go to the column to intercept the specified method. Modify this pointer through call and reach interception.

// 实现原理
// 定义父类
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');
// 调用
jquery_ajax.showName();

For more tutorials on using Mock.js to intercept AJAX requests in a Node.js server environment, please pay attention to the PHP Chinese website!

Related articles:

Detailed explanation of interception instances of ajax requests by interceptors

Interception of global ajax request instances through JS

How to check whether it is an ajax request through php

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn