2017-11-19 127 views
7

Ben vue2JS için yeni ve şu anda vue2 içinde ilk hizmetimi oluşturmaya çalışıyorum.Service in vue2JS - oluşturulmuş kanca hatası

Bu kod ile temel dosya api.js oluşturduk:

import axios from 'axios'; 

export default() => { 
    return axios.create({ 
     baseURL: 'http://localhost:8080/', 
     timeout: 10000, 
     headers: { 
      'Accept': 'application/json', 
      'Content-Type': 'application/json', 
     } 
    }) 
} 

Kod yukarıdaki uygulamanın tamamında her hizmette kullanılacak temel AXIOS yapılandırmasıdır.

benim hizmetine bu dosyayı içe:

import api from '../api.js'; 

export default { 
    getLatest() { 
     return api().get(`http://localhost/obiezaca/ob_serwer/api/article/getLatest.php`, { 
      headers: { 
       'Content-Type': 'application/json' 
      } 
     }) 
     .then(function (response) { 
      console.log(response.data); 
     }) 
     .catch(function (error) { 
      console.log(error); 
     }); 
    } 
} 

Kod yukarıdaki yanıt olarak JSON vermek dinlenme API arkayüz http istekte sorumludur.

Ve sonra nihayet benim bileşeni <script></script> etiketlerinin içinde bu hizmetten yararlanmak isteyen: Sonra

<script> 
    import { getLatest } from '../../../services/articles/getLatest'; 

    export default { 
     data() { 
      return { 
       articles: [] 
      } 
     }, 
     created() { 
      const getLatestService = new getLatest(); 
      console.log(getLatestService); 
     } 
    } 
</script> 
Ben hizmetten kodu çalıştırmak ve aslında bu http isteği sonra getLatestService sabiti tepkisini kaydetmek yürütmek istiyoruz Burada

ve console.log onu ve tarayıcı konsolumda JSON'u görebilmem gerekir.

Bu işe ve bana krom konsolunda bu hatayı vermez: komut satırında

[Vue warn]: Error in created hook: "TypeError: WEBPACK_IMPORTED_MODULE_0__services_articles_getLatest.a is not a constructor"

Ve bu hatayı:

39:35-44 "export 'getLatest' was not found in '../../../services/articles/getLatest'

bana bu sorunu çözmek için yardımcı olun. Ayrıca async'ı kullanmak için kodumu hizmetten (ikincisinden) yeniden kodlamak istiyorum ancak bunu başarmanın yolunu gösteren iyi bir örnek bulamıyorum. 22.11.17

files structure

DÜZENLEME komut hattı ve {} bileşeninde ithal gösteren hata ilave edildi. Ben hala problemi çözmedim. Ben kod daha açıklama eklemek cevabını arıyorum DÜZENLEME 24.11.17

Yayınladığım ve belki de dosyaların yapısının ekran görüntüsü yardımcı olabilir.

+0

Grubunuz, ithalatınız için .js uzantısına mı ihtiyaç duyar? '' 'Import {getLatest} '../../../ services/articles/getLatest';' '' ' – Fred

+0

Sanırım evet bu benim web sunucum k.base.conf.js yapılandırma dosyası: https://gist.github.com/anonymous/8cfe140faaa9f3e79805db56d7cb8902 – BT101

+0

Komut dosyası etiketlerinizde, const getLatestService = new getLatest(); 'öğesini çağırmak istediğinizden emin misiniz? Neden 'new' anahtar kelimesini kullanıyorsunuz? Bu, yalnızca işlevi çağırmaya çalıştığınızı düşündüğümde nesneyi oluşturmaya çalışır. – Phil

cevap