首页 > 解决方案 > 如何访问 privateRuntimeConfig 以与 nuxt/axios 模块一起使用

问题描述

我的 nuxt.config:

publicRuntimeConfig: {
  axios: {
    baseURL: process.env.API_URL, // where API_URL=https://some3rdpartyapi.com
  },
},
privateRuntimeConfig: {
  apiToken: process.env.API_TOKEN,
},

我想定期点击第 3 方 API,如下所示:

export default {
  data() {
    return {
      myList: [],
      timer: null,
    }
  },
  beforeDestroy() {
    clearInterval(this.timer)
  },
  created() {
    this.$axios.setToken(this.$config.apiToken, 'Bearer')
    this.fetchList()
    this.timer = setInterval(() => {
      this.fetchList()
    }, 60000)
  },
  methods: {
    async fetchList() {
      try {
        const list = await this.$axios.$get('/list')
        this.myList = list
      } catch (error) {
        console.log(error.response)
      }
    },
  },
}

但是privateRuntimeConfig客户端无法使用,我得到undefinedthis.$config.apiToken...您是否在每次调用 setToken 之前都.$get调用它,或者您可以在某个地方调用它一次created()吗?我试图围绕 axios+runtime config+ssr。这是用于本地开发的,我target在 nuxt.config 中设置为静态,因此当我部署到生产环境时,它将是一个静态站点。

我应该$axios.setToken在服务器端区域打电话吗,比如middleware?我可以在那里访问私人配置吗?我不确定如何处理这个问题。

标签: configurationaxiosenvironment-variablesnuxt.jsserver-side-rendering

解决方案


推荐阅读