代码之家  ›  专栏  ›  技术社区  ›  Piero

使用axios和axios模拟适配器

  •  1
  • Piero  · 技术社区  · 8 年前

    我正在尝试在一个地方使用axios和axios mock adapter来聚合更多的模拟,然后导出axios实例,以便在我想要的任何地方使用它:

    嘲弄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}
    

    主要的js公司

    import instance from './mock'
    
    instance.get('/users')
      .then(function(response) {
        console.log(response.data);
    });
    

    但我有一个错误:

    Uncaught TypeError: Cannot read property 'get' of undefined
    

    有人能帮我吗?我错过了什么?

    2 回复  |  直到 7 年前
        1
  •  4
  •   aaronjkrause    8 年前

    使用 export default instance 而不是 export {instance}

        2
  •  1
  •   barakbd    7 年前

    主要的js公司

    import {instance} from './mock'
    

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

    最好使用命名导出(用{}包装)在所有导入中强制一致的命名。