我需要为我的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(商店)页面的位置。
我希望同时生成商店和博客动态页面。