使用 axios 和 axios-mock-adapter
Use axios and axios-mock-adapter
我正在尝试在一个地方使用 axios 和 axios-mock-adapter 来聚合更多模拟,然后导出 axios 实例以在我想要的任何地方使用它:
mock.js
import axios from 'axios';
import MockAdapter from 'axios-mock-adapter';
let instance = axios.create({
baseURL: 'https://some-domain.com/api/',
timeout: 1000,
headers: {'X-Custom-Header': 'foobar'}
});
let mock = new MockAdapter(instance);
mock.onGet('/users').reply(200, {
users: [
{ id: 1, name: 'John Smith' }
]
});
export {instance}
main.js
import instance from './mock'
instance.get('/users')
.then(function(response) {
console.log(response.data);
});
但是我得到这个错误:
Uncaught TypeError: Cannot read property 'get' of undefined
谁能帮帮我?我错过了什么?
使用export default instance
代替export {instance}
main.js
import {instance} from './mock'
避免默认导出 - 它允许导出的模块以任何名称导入。
最好使用命名导出(包装在 {} 中)在所有导入中强制执行一致的命名。
我正在尝试在一个地方使用 axios 和 axios-mock-adapter 来聚合更多模拟,然后导出 axios 实例以在我想要的任何地方使用它:
mock.js
import axios from 'axios';
import MockAdapter from 'axios-mock-adapter';
let instance = axios.create({
baseURL: 'https://some-domain.com/api/',
timeout: 1000,
headers: {'X-Custom-Header': 'foobar'}
});
let mock = new MockAdapter(instance);
mock.onGet('/users').reply(200, {
users: [
{ id: 1, name: 'John Smith' }
]
});
export {instance}
main.js
import instance from './mock'
instance.get('/users')
.then(function(response) {
console.log(response.data);
});
但是我得到这个错误:
Uncaught TypeError: Cannot read property 'get' of undefined
谁能帮帮我?我错过了什么?
使用export default instance
代替export {instance}
main.js
import {instance} from './mock'
避免默认导出 - 它允许导出的模块以任何名称导入。
最好使用命名导出(包装在 {} 中)在所有导入中强制执行一致的命名。