2017-11-19 20 views
7

मैं vue2JS के लिए नया हूं और वर्तमान में मैं कभी भी vue2 में अपनी पहली सेवा बनाने की कोशिश कर रहा हूं।vue2JS में सेवा - बनाए गए हुक में त्रुटि

मैं इस कोड के साथ बुनियादी फ़ाइल api.js बना लिया है:

import axios from 'axios'; 

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

कोड ऊपर बुनियादी Axios विन्यास जो संपूर्ण एप्लिकेशन पर हर सेवा में उपयोग किया जाएगा है।

मैं अपने सेवा में इस फ़ाइल को आयात:

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); 
     }); 
    } 
} 

कोड ऊपर बाकी एपीआई जो जवाब में JSON देना बैकेंड http अनुरोध करने के लिए ज़िम्मेदार है।

और फिर अंत में मैं अपने घटक <script></script> टैग के अंदर इस सेवा का उपयोग करना चाहते हैं:

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

    export default { 
     data() { 
      return { 
       articles: [] 
      } 
     }, 
     created() { 
      const getLatestService = new getLatest(); 
      console.log(getLatestService); 
     } 
    } 
</script> 

यहाँ मैं सेवा से कोड निष्पादित करने के लिए और वास्तव में अमल इस http अनुरोध तो getLatestService निरंतर में उत्तर सहेजने चाहते हैं और फिर console.log यह और मुझे अपने ब्राउज़र कंसोल में JSON देखने में सक्षम होना चाहिए।

यह काम नहीं करता है और मुझे क्रोम कंसोल में इस त्रुटि दे: कमांड लाइन में

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

और यह त्रुटि:

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

कृपया मेरी मदद इस समस्या को हल करने के लिए। इसके अतिरिक्त मैं एसिंक प्रतीक्षा का उपयोग करने के लिए सेवा से दूसरे कोड (दूसरे एक) को दोबारा प्रतिक्रिया देना चाहता हूं लेकिन मुझे अच्छा उदाहरण नहीं मिल रहा है जो मुझे पूरा करने के लिए रास्ता दिखाएगा।

files structure

संपादित 22.11.17

मैं त्रुटि जो आदेश पंक्ति और {} जब घटक में आयात में दिखाने गयी। मैंने अभी भी समस्या का समाधान नहीं किया है।

संपादित 24.11.17

एक जवाब मैं कोड का अधिक विवरण जोड़ने के लिए खोज रहे हैं मैं पोस्ट किया है और हो सकता है यह मदद कर सकते हैं, तो फ़ाइलों संरचना के स्क्रीनशॉट।

+0

क्या आपके बंडलर को आपके आयात के लिए .js एक्सटेंशन की आवश्यकता है? '' 'आयात करें {getLatest} से '../../../ सेवाएं/आलेख/getLatest';' '' – Fred

+0

मुझे लगता है कि यह मेरा वेबपैक है k.base.conf.js कॉन्फ़िगरेशन फ़ाइल: https://gist.github.com/anonymous/8cfe140faaa9f3e79805db56d7cb8902 – BT101

+0

अपने स्क्रिप्ट टैग में, क्या आप वाकई 'const getLatestService = new getLatest();' कॉल करना चाहते हैं। आप यहाँ 'नया' कीवर्ड का उपयोग क्यों कर रहे हैं? वह ऑब्जेक्ट को तुरंत चालू करने का प्रयास करेगा, जब मुझे लगता है कि आप केवल फ़ंक्शन को कॉल करने का प्रयास कर रहे हैं। – Phil

उत्तर

1

मैं अपने कोड की जांच की है और अपने api.js में, क्या मैं देख सकता हूँ है आप

baseURL: 'http://localhost:8080/', 

का इस्तेमाल किया है और आपकी सेवा फ़ाइल

return api().get(`http://localhost/obiezaca/ob_serwer/api/article/getLatest.php` 

में आपकी सेवा फ़ाइल में आप अपने लोकहोस्ट पोर्ट, को परिभाषित नहीं किया है, मुझे लगता है कि यह

जैसा होना चाहिए

वापसी एपीआई()।ऊपर तो एक अपने मुद्दे तो आप

const getLatestService = getLatest(); 

की कोशिश करनी चाहिए क्योंकि getLatest() एक समारोह और नहीं एक वस्तु है नहीं है मिल (http://localhost:8080/obiezaca/ob_serwer/api/article/getLatest.php

यह का समाधान हो सकता है अपने त्रुटि मुद्दा।

+0

यह मेरा मुद्दा नहीं है। एपीआई फ्रंट एंड से पूरी तरह से स्वतंत्र है और यह apache xampp द्वारा चलाया जाता है। यूआरएल सही है। – BT101

संबंधित मुद्दे