Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数据从NPM模块传递到应用程序_Javascript_Npm_Node Modules - Fatal编程技术网

Javascript 将数据从NPM模块传递到应用程序

Javascript 将数据从NPM模块传递到应用程序,javascript,npm,node-modules,Javascript,Npm,Node Modules,没有问题,所以我先道歉。我试图开发我的第一个NPM包,它意味着一些简单的函数,当调用时,将响应数据传递给应用程序 我一直在使用npm link将软件包链接到vuejs应用程序,它似乎部分工作正常。当我调用mounted()部分中的getPublicData()函数时,它似乎可以工作。函数中的console.log(response.data)部分确实起作用,并在浏览器控制台中显示数据,但我也试图将响应数据分配给应用程序端的数组,这是我遇到问题的部分 我确信我遗漏了一些基本的东西,但鉴于我在过去使

没有问题,所以我先道歉。我试图开发我的第一个NPM包,它意味着一些简单的函数,当调用时,将响应数据传递给应用程序

我一直在使用
npm link
将软件包链接到vuejs应用程序,它似乎部分工作正常。当我调用
mounted()
部分中的
getPublicData()
函数时,它似乎可以工作。函数中的
console.log(response.data)
部分确实起作用,并在浏览器控制台中显示数据,但我也试图将响应数据分配给应用程序端的数组,这是我遇到问题的部分

我确信我遗漏了一些基本的东西,但鉴于我在过去使用的NPM包的复杂性,肯定有办法将此响应数据传递给应用程序

我的代码:

Index.js(NPM模块)

HelloWorld.vue

var axios = require("axios") 
module.exports = {  

getPublicData (req, res) {
    axios.get(`http://192.168.0.17:5000/test`)
    .then((response) => {
      console.log(response.data)
      res.send(response.data)
    })
    .catch((error) => {
      console.log("error");
    });
   }

}
<script>
import dtapp from "dtapp-api" //Linked NPM module

export default {
data () {
    return {
      myData: [],
    }
}, 
methods: {

  },
  mounted() {
   this.myData = dtapp.getPublicData();
  },
}
</script>

从“dtapp api”//链接的NPM模块导入dtapp
导出默认值{
数据(){
返回{
myData:[],
}
}, 
方法:{
},
安装的(){
this.myData=dtapp.getPublicData();
},
}

您的
getPublicData
函数需要返回数据,以便您的应用程序可以使用它。目前它没有返回任何内容

以下是如何做到这一点:

getPublicData () {
    return axios.get(`http://192.168.0.17:5000/test`)
    .then((response) => {
      console.log(response.data)
      return response.data
    })
}
这将返回一个承诺,因此在应用程序中,您可以执行以下操作:

mounted() {
   dtapp.getPublicData()
  .then(data => this.myData = data)
  .catch(err => console.log("Error occurred:", err))
} 

我必须对承诺做更多的研究,但谢谢你,先生,这已经奏效了:)