基于官方的GraphQL文档,我尝试使用gatsby-transformer-yaml进行查询
https://www.graph.cool/docs/reference/graphql-api/query-api-nia9nushae#traversing -a-single-node
query {
projectsYaml(title: "project1"){
description
keywords
published
}
}
这不起作用,错误为"Argument \"title\" has invalid value \"project1\".\nExpected \"projectsYamlTitleQueryString_2\", found not an object."
还尝试了这个https://www.graph.cool/docs/reference/graphql-api/query-api-nia9nushae#filtering -by-field
query {
allProjectsYaml(filter: {
title: "project1"
}){
edges{
node{
description
keywords
date
}
}
}
}
错误: Argument \"filter\" has invalid value {title: \"project1\"}.\nIn field \"title\": Expected \"projectsYamlConnectionTitleQueryString_2\", found not an object.",
src /
数据/
项目/
-project1.yml
-project2.yml
等等。
如果这不起作用,也许您可以建议其他解决方案以从特定文件中获取数据?
因为如果我只做projectsYaml
我只会得到第一个,使用allProjectsYaml
会让我过滤JS中的列表...
盖茨比信息-剪贴板
系统:
作业系统:Windows 10
CPU:x64 Intel(R)Core(TM)i5-6300HQ CPU @ 2.30GHz
二进制文件:
节点:10.8.0-D:NodeJSnode.EXE
npm:6.2.0-D:NodeJSnpm.CMD
浏览器:
边缘:42.17134.1.0
npmPackages:
盖茨比:^ 1.9.277 => 1.9.277
盖茨比影像:^ 1.0.55 => 1.0.55
gatsby-link:^ 1.6.46 => 1.6.46
gatsby-plugin-react-helmet:^ 2.0.11 => 2.0.11
gatsby-plugin-sharp:^ 1.6.48 => 1.6.48
gatsby源文件系统:^ 1.5.39 => 1.5.39
gatsby-transformer-json:^ 1.0.20 => 1.0.20
gatsby-transformer-sharp:^ 1.6.27 => 1.6.27
gatsby-transformer-yaml:^ 1.5.18 => 1.5.18
错误系统找不到指定的路径。
错误:系统找不到指定的路径。
envinfo.js:1 Function.e.exports.sync
[npm] / [gatsby-cli] / [envinfo] /dist/envinfo.js:1:7778
envinfo.js:1 Object.copySync
[npm] / [gatsby-cli] / [envinfo] /dist/envinfo.js:1:104976
envinfo.js:1 Object.t.writeSync.e [as writeSync]
[npm] / [gatsby-cli] / [envinfo] /dist/envinfo.js:1:123499
envinfo.js:1
[npm] / [gatsby-cli] / [envinfo] /dist/envinfo.js:1:124274
envinfo.js:1 Promise.all.then.e
[npm] / [gatsby-cli] / [envinfo] /dist/envinfo.js:1:124289
util.js:16 tryCatcher
[npm] / [gatsby-cli] / [bluebird] /js/release/util.js:16:23
promise.js:512个Promise._settlePromiseFromHandler
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:512:31
promise.js:569个Promise._settlePromise
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:569:18
promise.js:614个Promise._settlePromise0
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:614:10
promise.js:693个Promise._settlePromises
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:693:18
promise.js:638 Promise._fulfill
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:638:18
promise_array.js:126 PromiseArray._resolve
[npm] / [gatsby-cli] / [bluebird] /js/release/promise_array.js:126:19
promise_array.js:144 PromiseArray._promiseFulfilled
[npm] / [gatsby-cli] / [bluebird] /js/release/promise_array.js:144:14
promise.js:574 Promise._settlePromise
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:574:26
promise.js:614个Promise._settlePromise0
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:614:10
promise.js:693个Promise._settlePromises
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:693:18
错误无法拒绝
错误:系统找不到指定的路径。
envinfo.js:1 Function.e.exports.sync
[npm] / [gatsby-cli] / [envinfo] /dist/envinfo.js:1:7778
envinfo.js:1 Object.copySync
[npm] / [gatsby-cli] / [envinfo] /dist/envinfo.js:1:104976
envinfo.js:1 Object.t.writeSync.e [as writeSync]
[npm] / [gatsby-cli] / [envinfo] /dist/envinfo.js:1:123499
envinfo.js:1
[npm] / [gatsby-cli] / [envinfo] /dist/envinfo.js:1:124274
envinfo.js:1 Promise.all.then.e
[npm] / [gatsby-cli] / [envinfo] /dist/envinfo.js:1:124289
util.js:16 tryCatcher
[npm] / [gatsby-cli] / [bluebird] /js/release/util.js:16:23
promise.js:512个Promise._settlePromiseFromHandler
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:512:31
promise.js:569个Promise._settlePromise
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:569:18
promise.js:614个Promise._settlePromise0
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:614:10
promise.js:693个Promise._settlePromises
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:693:18
promise.js:638 Promise._fulfill
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:638:18
promise_array.js:126 PromiseArray._resolve
[npm] / [gatsby-cli] / [bluebird] /js/release/promise_array.js:126:19
promise_array.js:144 PromiseArray._promiseFulfilled
[npm] / [gatsby-cli] / [bluebird] /js/release/promise_array.js:144:14
promise.js:574 Promise._settlePromise
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:574:26
promise.js:614个Promise._settlePromise0
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:614:10
promise.js:693个Promise._settlePromises
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:693:18
(浏览器是错误的,我有歌剧,Chrome和Firefox,但不要认为这是相关的。
gatsby-config.js
: module.exports = {
siteMetadata: {
title: 'xxx',
},
plugins: [
'gatsby-plugin-react-helmet',
'gatsby-transformer-json',
'gatsby-transformer-sharp',
'gatsby-transformer-yaml',
'gatsby-plugin-sharp',
{
resolve: 'gatsby-source-filesystem',
options: {
name: 'data',
path: './src/data',
},
},
{
resolve: 'gatsby-source-filesystem',
options: {
name: 'projects',
path: './src/data/projects',
},
},
{
resolve: 'gatsby-source-filesystem',
options: {
name: 'img',
path: './src/assets/images',
},
},
],
}
package.json
:不适用
gatsby-node.js
:不适用
gatsby-browser.js
:不适用
gatsby-ssr.js
:不适用
请检查https://www.gatsbyjs.org/docs/graphql-reference/#filter-gatsby使用运算符进行过滤,因此更加灵活-在您的情况下,您可能希望使用:
query { projectsYaml(title: { eq: "project1"})
- eq
表示标题等于“ project1”-其他运算符允许排除ne
,使用正则表达式等
最有用的评论
请检查https://www.gatsbyjs.org/docs/graphql-reference/#filter-gatsby使用运算符进行过滤,因此更加灵活-在您的情况下,您可能希望使用:
query { projectsYaml(title: { eq: "project1"})
-eq
表示标题等于“ project1”-其他运算符允许排除ne
,使用正则表达式等