gpt4 book ai didi

vue.js - nuxt.config.js 中的 Apollo 查询

转载 作者:行者123 更新时间:2023-12-03 23:42:22 27 4
gpt4 key购买 nike

我正在尝试在 nuxt 中发出智能请求与 nuxt-apollo-module为了抢到我的路线 nuxt-sitemaps-module (所以我可以用他们创建我的站点地图)。
我需要从 nuxt.config.js 内部提出此请求文件。我尝试过这种方式,但没有运气(因为 app 在这种情况下不存在)。这样做的正确方法是什么?
提前致谢!
我的相关部分nuxt.config.js

import gql from 'graphql-tag'

module.exports = {

modules: [
'@nuxtjs/apollo',
'@nuxtjs/sitemap'
],

apollo: {
clientConfigs: {
default: {
httpEndpoint: 'https://example.com/graphql'
}
}
},


sitemap: {
path: '/sitemap.xml',
hostname: 'https://example.com/',
generate: true,
cacheTime: 86400,
trailingSlash: true,
routes: async ({ app }) => {
const myRoutes = ['/one-random-path/']
let client = app.apolloProvider.defaultClient
let myProductsQuery = gql`query {
products {
slug
}
}`
let myBrandsQuery = gql`query {
brands {
slug
}
}`
const myProducts = await client.query({ query: myProductsQuery })
const myBrands = await client.query({ query: myBrandsQuery })

return [myRoutes, ...myProducts, ...myBrands]
}
}
}

最佳答案

我能够以这种方式生成它,但我确信有更好的方法。

yarn add node-fetch apollo-boost
sitemap: {
routes: async () => {
const routes = []
const fetch = require("node-fetch")
const { gql } = require("apollo-boost")
const ApolloBoost = require("apollo-boost")
const ApolloClient = ApolloBoost.default

const client = new ApolloClient({
fetch: fetch,
uri: YOUR_API_ENDPOINT,
})

const fetchUsers = gql`
query {
users {
id
}
}
`

const users = await client
.query({
query: fetchUsers,
})
.then((res) => res.data.users)

users.forEach((user) => {
routes.push({
route: `/${user.id}`,
})
})

return routes
},
},

关于vue.js - nuxt.config.js 中的 Apollo 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65000800/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com