在构建期间禁用服务器查询
Posted
技术标签:
【中文标题】在构建期间禁用服务器查询【英文标题】:Disable server query during build 【发布时间】:2021-10-04 11:01:31 【问题描述】:我们有一个 docker 镜像来设置后端服务器和使用 ApolloClient 的前端 NextJS 应用程序。在 NextJS 应用程序的构建过程中,Apollo 客户端尝试查询后端服务器的 graphql 端点,该端点由于服务器尚未启动而无法正常工作。
有没有办法让 ApolloClient 在构建期间不查询外部服务器? 这是构造函数:
function createApolloClient()
return new ApolloClient(
s-s-rMode: typeof window === 'undefined',
link: createUploadLink(
uri: process.env.HOSTNAME + '/graphql',
credentials: 'same-origin',
),
cache: new InMemoryCache(
typePolicies:
Query:
fields:
allPosts: concatPagination(),
,
,
,
),
onError: ( networkError, graphQLErrors ) =>
console.log('graphQLErrors', graphQLErrors)
console.log('networkError', networkError)
)
我们最终想要的是一个运行后端 (Java) 服务器的 docker 容器,该服务器为 NextJS 构建的静态文件提供服务。
【问题讨论】:
Next.js应用不能查询后端API怎么办? 【参考方案1】:您的问题不清楚,但您希望何时运行查询?
如果应该是构建时间,为什么后端服务器没有运行? Next.js 应该从哪里获取数据? 在请求时,由服务器?使用getServerSideProps 在请求时,由客户端(浏览器?)检查typeof(window) !== 'undefined'
并使用 fetch + async/await。
【讨论】:
我希望在用户与需要查询后端 API 的应用程序交互时运行查询,因此可能是您列出的选项 3。谢谢指点,我去看看! 那么是的,这些获取将完全绕过 next.js 并使用标准 ES6 直接从客户端查询您的 API:developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch以上是关于在构建期间禁用服务器查询的主要内容,如果未能解决你的问题,请参考以下文章
错误代码:2013。查询期间丢失与 MySQL 服务器的连接
2013, '在查询期间丢失与 MySQL 服务器的连接 - Pymysql Microsoft sql server management Studio