如何解决如何使用Ember-Apollo连接到Graphql服务器?
我正在使用基于全栈GraqlQL的应用程序。服务器工作正常,现在我需要在客户端尝试第一个查询和变异。由于某种原因,“监视”路由及其后的所有内容均不会显示。在下面,我将显示我已编辑或创建的文件。
items.graphql:
query {
items {
_id
name
}
}
environment.js:
'use strict';
module.exports = function(environment) {
let ENV = {
apollo: {
apiURL: 'http://localhost:5000/graphql'
},modulePrefix: 'client',environment,rootURL: '/',locationType: 'auto',EmberENV: {
FEATURES: {
//
},EXTEND_PROTOTYPES: {
Date: false
}
},APP: {
//
}
};
if (environment === 'development') {
//
}
if (environment === 'test') {
ENV.locationType = 'none';
ENV.APP.LOG_ACTIVE_GENERATION = false;
ENV.APP.LOG_VIEW_LOOKUPS = false;
ENV.APP.rootElement = '#ember-testing';
ENV.APP.autoboot = false;
}
if (environment === 'production') {
//
}
return ENV;
};
monitoring.js(路由):
import Route from '@ember/routing/route';
import { queryManager } from 'ember-apollo-client';
import query from 'client/gql/items.graphql';
export default Route.extend({
apollo: queryManager(),model() {
return this.apollo.watchQuery({ query },'items');
}
});
monitoring.hbs:
<h3>Monitoring</h3>
<div>
{{#each model as |item|}}
<h3>{{item.name}}</h3>
{{/each}}
</div>
{{outlet}}
感谢您的关注!
我看到此错误:
Uncaught (in promise) Error: fetch is not defined - maybe your browser targets are not covering everything you need?
解决方法
解决方案是修复两件事。 首先是将其放入ember-cli-build.js:
'ember-fetch': {
preferNative: true
}
并修复路由文件:
import Route from '@ember/routing/route';
import { queryManager } from 'ember-apollo-client';
import query from 'client/gql/queries/items.graphql';
export default Route.extend({
apollo: queryManager(),async model() {
let queryResults = await this.apollo.watchQuery({ query },'items');
return Object.values(queryResults);
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。