如何处理nuxt从cokpit cms api

时间:2019-07-24 16:49:48

标签: vue.js vue-router nuxt.js nuxt

我需要为我的nuxt应用程序生成多条路由,我已经生成了2条异步生成路由命令,这些命令可以独立工作,但是由于已经声明了两次“数据”属性,因此所有尝试将它们合并到一个生成命令中。我要结合这些:

我以前尝试过以下方式组合:

generate: {
  routes: function () {
    let posts = axios.get('https://api.com/posts', {params: {size: 10}}).then((res) => {
      return res.data.posts.map((post) => {
        return {
          route: '/feed/' + post.id,
          payload: post
        }
      })
    })
    let users = axios.get('https://api.com/users', {params: {size: 10}}).then((res) => {
      return res.data.content.map((user) => {
        return {
           route: '/user/' + user.id,
           payload: user
         }
      })
    })
    return Promise.all([posts, users]).then(values => {
      return [...values[0], ...values[1]]
    })
  }
},

但是let =数据两次被拒绝,从而导致错误。

我还尝试制作了两个分离的生成命令,但在运行npm run generate时忽略了第一个。

生成帖子的命令

generate: {
    routes: async () => {
      let {
        data
      } = await axios.post(process.env.POSTS_URL,
        JSON.stringify({
          filter: {
            published: true
          },
          sort: {
            _created: -1
          },
          populate: 1
        }), {
          headers: {
            "Content-Type": "application/json"
          }
        });

      const collection = collect(data.entries);

      let tags = collection.map(post => post.tags)
        .flatten()
        .unique()
        .map(tag => {
          let payload = collection.filter(item => {
            return collect(item.tags).contains(tag);
          }).all();

          return {
            route: `/blog/category/${tag}`,
            payload: payload
          };
        }).all();

      let posts = collection.map(post => {
        return {
          route: `/blog/${post.title_slug}`,
          payload: post
        };
      }).all();

      if (perPage < data.total) {
        let pages = collection
          .take(perPage - data.total)
          .chunk(perPage)
          .map((items, key) => {
            let currentPage = key + 2;

            return {
              route: `/blog/pages/${currentPage}`,
              payload: {
                posts: items.all(),
                hasNext: data.total > currentPage * perPage
              }
            };
          }).all();

        return posts.concat(tags, pages);
      }

      return posts.concat(tags);
    },

   },

生成产品命令

  generate: {
    routes:   async () => {
      let {
        data
      } = await axios.get(process.env.PRODUCT_URL,
        JSON.stringify({
          filter: {
            published: true
          },
          sort: {
            _created: -1
          },
          populate: 1
        }), {
          headers: {
            "Content-Type": "application/json"
          }
        })
      return data.entries.map((product) => {
        return {
          route: `/mahazyn/${product.name_slug}`,
          payload: product
        }
      })
    }

  },

我以前有:

Generated /blog/skilki-raziv-mozhna-poliruvati-avtomobil                                                         19:12:19
√ Generated /blog/category/blog                                                                                    19:12:19
√ Generated /blog/pages/2                                                                                          19:12:19
√ Generated /blog/yak-samostijno-doglyadati-za-salonom-avtomobilya                                                 19:12:19
√ Generated /blog/category/polishing                                                                               19:12:19
√ Generated /blog/category/car                                                                                     19:12:19
√ Generated /blog/category/virus                                                                                   19:12:19
√ Generated /blog/category/автомобіля                                                                              19:12:19
√ Generated /blog/chomu-ne-varto-poliruvati-avtomobil-v-domashnih-umovah                                           19:12:19
√ Generated /blog/category/cars                                                                                    19:12:19
√ Generated /blog/category/салоном                                                                                 19:12:19
√ Generated /mahazyn                                                                                               19:12:19
√ Generated /blog  

生成了博客页面并

Generated /mahazyn/koch-chemie-fresh-up                                                                          19:41:48
√ Generated /mahazyn/rupes-coarse-zephir-gloss                                                                     19:41:48
√ Generated /mahazyn/soft-99                                                                                       19:41:48
√ Generated /                                                                                                      19:41:49
√ Generated /mahazyn                                                                                               19:41:49
√ Generated /blog                                                                                                  19:41:49
√ Generated /akciyi 

生成mahazyn(商店)页面的位置。

我希望同时生成商店和博客动态页面。

0 个答案:

没有答案