Basierend auf offiziellen GraphQL-Dokumenten habe ich versucht, eine Abfrage mit gatsby-transformator-yaml durchzuführen
https://www.graph.cool/docs/reference/graphql-api/query-api-nia9nushae#traversing -a-single-node
query {
projectsYaml(title: "project1"){
description
keywords
published
}
}
Dies funktioniert nicht. Der Fehler ist "Argument \"title\" has invalid value \"project1\".\nExpected \"projectsYamlTitleQueryString_2\", found not an object."
versuchte auch dieses https://www.graph.cool/docs/reference/graphql-api/query-api-nia9nushae#filtering -by-field
query {
allProjectsYaml(filter: {
title: "project1"
}){
edges{
node{
description
keywords
date
}
}
}
}
Fehler: Argument \"filter\" has invalid value {title: \"project1\"}.\nIn field \"title\": Expected \"projectsYamlConnectionTitleQueryString_2\", found not an object.",
src /
Daten/
Projekte /
-project1.yml
-project2.yml
und so weiter.
Wenn dies nicht funktioniert, können Sie möglicherweise eine andere Lösung vorschlagen, um Daten aus einer bestimmten Datei abzurufen.
denn wenn ich nur projectsYaml
mache, bekomme ich nur den ersten, wenn ich allProjectsYaml
würde ich die Liste in JS filtern ...
gatsby info --clipboard
System:
Betriebssystem: Windows 10
CPU: x64 Intel (R) Core (TM) i5-6300HQ-CPU bei 2,30 GHz
Binärdateien:
Knoten: 10.8.0 - D: NodeJSnode.EXE
npm: 6.2.0 - D: NodeJSnpm.CMD
Browser:
Kante: 42.17134.1.0
npmPackages:
gatsby: ^ 1.9.277 => 1.9.277
gatsby-image: ^ 1.0.55 => 1.0.55
gatsby-link: ^ 1.6.46 => 1.6.46
Gatsby-Plugin-React-Helm: ^ 2.0.11 => 2.0.11
Gatsby-Plugin-scharf: ^ 1.6.48 => 1.6.48
gatsby-source-filesystem: ^ 1.5.39 => 1.5.39
gatsby-transformator-json: ^ 1.0.20 => 1.0.20
Gatsby-Transformator-scharf: ^ 1.6.27 => 1.6.27
gatsby-transformator-yaml: ^ 1.5.18 => 1.5.18
Fehler Das System kann den angegebenen Pfad nicht finden.
Fehler: Das System kann den angegebenen Pfad nicht finden.
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 [als 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
versprechen.js: 512 Promise._settlePromiseFromHandler
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:512:31
versprechen.js: 569 Promise._settlePromise
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:569:18
versprechen.js: 614 Promise._settlePromise0
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:614:10
versprechen.js: 693 Promise._settlePromises
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:693:18
versprechen.js: 638 Versprechen._voll erfüllen
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:638:18
versprechen_array.js: 126 PromiseArray._resolve
[npm] / [gatsby-cli] / [bluebird] /js/release/promise_array.js:126:19
versprechen_array.js: 144 PromiseArray._promiseFulfilled
[npm] / [gatsby-cli] / [bluebird] /js/release/promise_array.js:144:14
versprechen.js: 574 Promise._settlePromise
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:574:26
versprechen.js: 614 Promise._settlePromise0
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:614:10
versprechen.js: 693 Promise._settlePromises
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:693:18
Fehler UNHANDLED REJECTION
Fehler: Das System kann den angegebenen Pfad nicht finden.
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 [als 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
versprechen.js: 512 Promise._settlePromiseFromHandler
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:512:31
versprechen.js: 569 Promise._settlePromise
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:569:18
versprechen.js: 614 Promise._settlePromise0
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:614:10
versprechen.js: 693 Promise._settlePromises
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:693:18
versprechen.js: 638 Versprechen._voll erfüllen
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:638:18
versprechen_array.js: 126 PromiseArray._resolve
[npm] / [gatsby-cli] / [bluebird] /js/release/promise_array.js:126:19
versprechen_array.js: 144 PromiseArray._promiseFulfilled
[npm] / [gatsby-cli] / [bluebird] /js/release/promise_array.js:144:14
versprechen.js: 574 Promise._settlePromise
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:574:26
versprechen.js: 614 Promise._settlePromise0
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:614:10
versprechen.js: 693 Promise._settlePromises
[npm] / [gatsby-cli] / [bluebird] /js/release/promise.js:693:18
(Browser sind falsch, ich habe Oper, Chrome und Firefox, aber ich denke nicht, dass dies relevant ist.
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
: N / A.
gatsby-node.js
: N / A.
gatsby-browser.js
: N / A.
gatsby-ssr.js
: N / A.
Bitte überprüfen Sie https://www.gatsbyjs.org/docs/graphql-reference/#filter - gatsby verwendet Operatoren zum Filtern, ist also flexibler - in Ihrem Fall möchten Sie wahrscheinlich Folgendes verwenden:
query { projectsYaml(title: { eq: "project1"})
- eq
bedeutet, dass der Titel gleich "project1" ist - andere Operatoren erlauben den Ausschluss von ne
unter Verwendung von Regex usw.
Hilfreichster Kommentar
Bitte überprüfen Sie https://www.gatsbyjs.org/docs/graphql-reference/#filter - gatsby verwendet Operatoren zum Filtern, ist also flexibler - in Ihrem Fall möchten Sie wahrscheinlich Folgendes verwenden:
query { projectsYaml(title: { eq: "project1"})
-eq
bedeutet, dass der Titel gleich "project1" ist - andere Operatoren erlauben den Ausschluss vonne
unter Verwendung von Regex usw.