将数据从 NPM 模块传递到应用程序
Pass data from NPM module to application
菜鸟问题来了所以我提前道歉。我正在尝试开发我的第一个 NPM 包,它意味着一些简单的函数,在调用时将响应数据传递给应用程序。
我一直在使用 npm link
将包 link 添加到 vuejs 应用程序,它似乎部分工作。当我在 mounted()
部分调用 getPublicData()
函数时,它似乎起作用了。函数中的 console.log(response.data)
部分确实有效并在浏览器控制台中显示数据,但我也在尝试将响应数据分配给应用程序端的数组,这是我遇到问题的部分。
我确定我遗漏了一些基本的东西,但是鉴于我过去使用的 NPM 包的所有复杂性,肯定必须有一种方法可以将此响应数据传递给应用程序?
我的代码:
Index.js(NPM 模块)
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");
});
}
}
HelloWorld.vue
<script>
import dtapp from "dtapp-api" //Linked NPM module
export default {
data () {
return {
myData: [],
}
},
methods: {
},
mounted() {
this.myData = dtapp.getPublicData();
},
}
</script>
您的 getPublicData
函数需要 return 数据,以便您的应用程序可以使用它。目前它没有 return 任何东西。
你可以这样做:
getPublicData () {
return axios.get(`http://192.168.0.17:5000/test`)
.then((response) => {
console.log(response.data)
return response.data
})
}
这将 return 一个承诺,所以在应用程序中你可以这样做:
mounted() {
dtapp.getPublicData()
.then(data => this.myData = data)
.catch(err => console.log("Error occurred:", err))
}
菜鸟问题来了所以我提前道歉。我正在尝试开发我的第一个 NPM 包,它意味着一些简单的函数,在调用时将响应数据传递给应用程序。
我一直在使用 npm link
将包 link 添加到 vuejs 应用程序,它似乎部分工作。当我在 mounted()
部分调用 getPublicData()
函数时,它似乎起作用了。函数中的 console.log(response.data)
部分确实有效并在浏览器控制台中显示数据,但我也在尝试将响应数据分配给应用程序端的数组,这是我遇到问题的部分。
我确定我遗漏了一些基本的东西,但是鉴于我过去使用的 NPM 包的所有复杂性,肯定必须有一种方法可以将此响应数据传递给应用程序?
我的代码:
Index.js(NPM 模块)
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");
});
}
}
HelloWorld.vue
<script>
import dtapp from "dtapp-api" //Linked NPM module
export default {
data () {
return {
myData: [],
}
},
methods: {
},
mounted() {
this.myData = dtapp.getPublicData();
},
}
</script>
您的 getPublicData
函数需要 return 数据,以便您的应用程序可以使用它。目前它没有 return 任何东西。
你可以这样做:
getPublicData () {
return axios.get(`http://192.168.0.17:5000/test`)
.then((response) => {
console.log(response.data)
return response.data
})
}
这将 return 一个承诺,所以在应用程序中你可以这样做:
mounted() {
dtapp.getPublicData()
.then(data => this.myData = data)
.catch(err => console.log("Error occurred:", err))
}