首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用express-graphql和HTTP客户端从graphql获取数据

使用express-graphql和HTTP客户端从graphql获取数据
EN

Stack Overflow用户
提问于 2016-11-06 04:11:36
回答 1查看 957关注 0票数 0

我在一个标准的apollo graphql-server-express上做HTTP fetch请求有困难

我试着遵循graphql.org上的指导,但没有效果。

为了测试这一点,我使用了Fusetools News Feed Example,并使用标准http调用了对apollo-server的fetch调用:

代码语言:javascript
复制
```javascript

fetch('https://localhost:8080/graphql',{

代码语言:javascript
复制
            "method": 'POST',
代码语言:javascript
复制
            "headers": { "Content-type": "application/graphql", "Accept": "application/json"},
代码语言:javascript
复制
            "body": {"query": "{ places { id name address city }" }
代码语言:javascript
复制
        })
代码语言:javascript
复制
        .then(function(response) { return response.json; })
代码语言:javascript
复制
        .then(function(responseObject) { data.value = responseObject; });
代码语言:javascript
复制

这是完整的代码,只是返回的字段发生了变化。

代码语言:javascript
复制
​

```javascript

代码语言:javascript
复制
<JavaScript>
代码语言:javascript
复制
    var Observable = require("FuseJS/Observable");
代码语言:javascript
复制
    var data = Observable();
代码语言:javascript
复制
    fetch('https://localhost:8080/graphql', {
代码语言:javascript
复制
        "method": 'POST',
代码语言:javascript
复制
        "headers": { "Content-type": "application/graphql", "Accept": "application/json"},
代码语言:javascript
复制
        "body": {"query": "{ places { id name address city }" }
代码语言:javascript
复制
    })
代码语言:javascript
复制
    .then(function(response) { return response.json; })
代码语言:javascript
复制
    .then(function(responseObject) { data.value = responseObject;                });
代码语言:javascript
复制
    module.exports = {
代码语言:javascript
复制
        dataSource: data
代码语言:javascript
复制
    };
代码语言:javascript
复制
</JavaScript>
代码语言:javascript
复制
<StatusBarBackground Dock="Top" />
代码语言:javascript
复制
<BottomFrameBackground Dock="Bottom" />
代码语言:javascript
复制
<StackPanel Dock="Top">
代码语言:javascript
复制
    <Text FontSize="28" Alignment="VerticalCenter"
代码语言:javascript
复制
        TextAlignment="Center" Padding="2"
代码语言:javascript
复制
        Value="NEWS" />
代码语言:javascript
复制
    <Rectangle Height="1" Margin="0,3,0,0" Fill="#333c48" />
代码语言:javascript
复制
</StackPanel>
代码语言:javascript
复制
<Text ux:Class="Header" Margin="10,10,10,5" TextWrapping="Wrap" FontSize="22" />
代码语言:javascript
复制
<Text ux:Class="Article" Margin="10,0,10,0" TextWrapping="Wrap" FontSize="13" />
代码语言:javascript
复制
<Text ux:Class="PublishedDate" Margin="10,0,10,0" FontSize="13" Color="#999" />
代码语言:javascript
复制
<ScrollView>
代码语言:javascript
复制
    <StackPanel Alignment="Top">
代码语言:javascript
复制
        <Panel Height="7" />
代码语言:javascript
复制
        <Each Items="{dataSource.data.places}">
代码语言:javascript
复制
            <Panel ux:Class="HorizontalBar" Margin="46,10,0,10"
代码语言:javascript
复制
                    Alignment="VerticalCenter">
代码语言:javascript
复制
                <Rectangle Height="1" Fill="#dcdee3" />
代码语言:javascript
复制
            </Panel>
代码语言:javascript
复制
            <Header Value="{name}" />
代码语言:javascript
复制
            <Article Value="{address}" />
代码语言:javascript
复制
            <PublishedDate Value="{city}" />
代码语言:javascript
复制
            <HorizontalBar />
代码语言:javascript
复制
        </Each>
代码语言:javascript
复制
    </StackPanel>
代码语言:javascript
复制
</ScrollView>

代码语言:javascript
复制
代码语言:javascript
复制
EN

回答 1

Stack Overflow用户

发布于 2016-11-06 05:19:17

要使用fetch到graphql服务器,在我的例子中工作的正确语法如下。谢谢,丹尼尔。

代码语言:javascript
复制
fetch('https://graphql-swapi.parseapp.com/', {
  method: 'POST',
  headers: { "Content-type": "application/json", "Accept": "application/json"},
  body: JSON.stringify({"query":"{allFilms {totalCount}}","variables":null,"operationName":null})
}).then(function(response) { return response.json(); })
.then(function(responseObject) { console.log('GOT', JSON.stringify(responseObject, null, '  ')); });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40442730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档