node.js - 使用 axios 进行内部 API 调用
问题描述
我有两个节点实例,在端口 5000 上使用 MongoDB 的 Express 后端和在端口 8080 上使用 VueJs 的前端。
我的目标是直接从前端服务器进行 API 调用,这样用户就无法访问数据库。
目前我有这个配置可以在本地主机上完美运行,但不能从任何其他机器进行白访问。
Home.vue 上使用的组件:
import AxiosModule from "@/middleware/axiosmodule.js";
(...)
methods:{
/* eslint-disable no-console */
fetchData(){
AxiosModule
.get("/data")
.then(response => {
this.values = response.data;
console.log(response.data);
})
.catch(err => {
console.log(err);
});
},
Axios 模块:
import axios from 'axios';
export default axios.create({
baseURL: "http://localhost:5000/api/",
headers:{
"Content-type": "application/json",
},
});
在 localhost:5000/api/data 有一个对象数组。
从本地网络访问:8080 时,控制台中有关于连接到:5000/api/data 的“ERR_CONNECTION_REFUSED”消息,我认为这表明 API 的实际调用来自客户端,而不是服务器(我只有 8080在我的路由器上打开端口)。
因此,据我了解,我有两个选择:在内部进行 API 调用并阻止对端口 5000 的访问或实施某种授权。
当然,如果你有更好的方法,请告诉我。谢谢是提前。
解决方案
推荐阅读
- python - 从 pandas dropna 中排除特定列
- javascript - 如何导航到显示类似于 iOS 的“全屏”模式的反应原生屏幕
- flutter - Flutter / Dart ListView不显示snapshot.data
- xamarin - 添加 Firebase Analytics Nuget 后获取属性“buttonSize”已定义不兼容的格式错误
- python - 如何修复'str'对象在我的python3脚本中没有属性'read'
- flutter - Flutter snapshot.data() 始终为空
- python - 如何将整数值保存到文本文件
- php - 如何在 php 中获取导航菜单项?
- typescript - 这个打字稿代码中的“1”是什么意思?
- c# - 如何覆盖/修改 Frame 的 Content 属性以接受 Xamarin.Forms 中的多个视图?