javascript - 将数据从 NPM 模块传递到应用程序
问题描述
菜鸟问题来了,所以我提前道歉。我正在尝试开发我的第一个 NPM 包,它意味着一些简单的函数,当被调用时,它们会将响应数据传递给应用程序。
我一直在使用npm link
将包链接到 vuejs 应用程序,它似乎正在部分工作。当我getPublicData()
在该部分中调用该函数时,mounted()
它似乎可以工作。函数中的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");
});
}
}
你好世界.vue
<script>
import dtapp from "dtapp-api" //Linked NPM module
export default {
data () {
return {
myData: [],
}
},
methods: {
},
mounted() {
this.myData = dtapp.getPublicData();
},
}
</script>
解决方案
您的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))
}
推荐阅读
- javascript - 复杂逻辑树的 JavaScript 开关/案例最佳实践
- ruby-on-rails - rake db:create 中止!升级宝石时
- reactjs - 根据反应中的组件数组创建包装器
- javascript - Firestore:无法使用同时使用 currentUser.uid 和 FieldPath.documentId() 的 WHERE 子句安全地查询数据
- django - 如果我将 dockerized Web 应用程序连接到 Amazon RDS 数据库,是否存在安全/性能问题?
- matlab - 有没有办法让 Matlab 进程在执行过程中输出,这样即使在用户中断后输出也可用?
- excel - VBA - 将信息正确分类到不同工作表中的列中
- javascript - 有条件地将类渲染到网格单元,然后在状态更改时将其删除
- node.js - 关于 json web token 的几个问题
- custom-element - 防止在 lit-html/lit-element 中重用 DOM