使用axios和axios-mock-adapter

时间:2018-01-03 18:05:27

标签: javascript axios 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

任何人都可以帮助我吗?我错过了什么?

2 个答案:

答案 0 :(得分:3)

使用export default instance代替export {instance}

答案 1 :(得分:0)

main.js

import {instance} from './mock'

避免默认导出-它允许使用任何名称导入导出的模块。

最好使用命名出口(用{}包装)在所有进口中实施一致的命名。