小编Flo*_*ion的帖子

当前端和后端在虚拟 docker 网络中时,如何使用 axios 寻址后端主机

我正在构建一个带有登录名的简单网站,我的 vue-frontend 需要从连接到 sql 数据库的 nodejs-backend 检索用户数据。我决定为此使用 docker-compose,据我了解,docker-compose 会自动为我的 docker-compose.yml 中提到的服务设置网络。

似乎不起作用的是我在代码中解决后端的方式。我怀疑这可能是因为我使用 axios 向后端发送请求的方式。

我已经检查了默认的 docker-network,并且能够使用我在网络配置中找到的 dns 名称从我的前端 ping 到我的后端。但是在我的代码中使用相同的名称不起作用。

有效的是将主机端口映射到我公开的 api 端口并使用http://localhost:5000作为地址,但这违背了 docker 网络的目的。

我的 docker-compose.yml:

version: '3.3'

services:
    vue-frontend:
        image: flowmotion/vue-js-frontend
        ports:
            - 8070:80
        depends_on:
            - db-user-api

    db-user-api:
        image: flowmotion/user-db-api
        environment:
            - PORT=5000
        ports:
            - 5000:5000 #only needed if docker network connection can't be established 
Run Code Online (Sandbox Code Playgroud)

有问题的 Vue-fontend 文件:

登录.vue

methods: {
    async login() {
      try {
        const response = await authenticationService.login({
          email: this.email,
          password: this.password
        }); …
Run Code Online (Sandbox Code Playgroud)

node.js docker vue.js docker-compose axios

8
推荐指数
1
解决办法
8109
查看次数

标签 统计

axios ×1

docker ×1

docker-compose ×1

node.js ×1

vue.js ×1