Nuxt asyncData 无法从授权的快速路线中提取

Nuxt asyncData not able to pull from authorized express routes

建立电子商务商店。从产品开始,不需要授权即可拉取,但需要授权才能编辑。这工作正常,我怀疑这是因为这是在客户端上发生的,它直接从客户端发送所有请求的身份验证信息(即方法挂钩)。

但是,订单数据确实需要授权才能访问其中的任何数据。我无法访问此路由以使用 asyncData 生成页面。我怀疑这是因为它发生在 Nuxt 服务器上而不是客户端上。

  async asyncData({ $config: { apiURL } }) {
      let orders = await axios.get(
          `${apiURL}/orders`
      );
      return { orders: orders.data.data };
  },

正确的做法是什么?设置一个空数据点然后使用mounted或created来拉取和设置?

更新:我把它作为一种方法使用,但是你必须按下按钮才能提取所有订单,这是非常糟糕的用户体验哈哈怎么办

成功了,这就是我所做的:

  data: () => ({
    orders: []
  }),
  mounted() {
    this.$axios.$get(`${this.$config.apiURL}/orders`).then( res => {
      this.orders = res.data
    })
  },

如果有更好的方法,请告诉我

另一种解决方案是

<template>
  <section>
    <div v-for="user in users" :key="user.id">
      {{ user.name }}
    </div>
  </section>
</template>

<script>
export default {
  async asyncData({ $axios, $config: { jsonPlaceholder } }) {
    const fetchedUsers = await $axios.$get(`${jsonPlaceholder}/users`)
    return { users: fetchedUsers }
  },
  data() {
    return {
      users: [],
    }
  },
}
</script>

这里以 JSONplaceholder 为例,在您的情况下,您可以像最初一样添加额外的 data

此解决方案的好处是在调用完成之前阻止页面呈现(mounted() 不能)。