Berdasarkan dokumen resmi GraphQL, saya mencoba membuat kueri dengan 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
}
}
ini tidak berhasil, kesalahan menjadi "Argument \"title\" has invalid value \"project1\".\nExpected \"projectsYamlTitleQueryString_2\", found not an object."
juga mencoba yang ini https://www.graph.cool/docs/reference/graphql-api/query-api-nia9nushae#filtering -by-field
query {
allProjectsYaml(filter: {
title: "project1"
}){
edges{
node{
description
keywords
date
}
}
}
}
kesalahan: Argument \"filter\" has invalid value {title: \"project1\"}.\nIn field \"title\": Expected \"projectsYamlConnectionTitleQueryString_2\", found not an object.",
src /
data/
proyek /
-project1.yml
-project2.yml
dan seterusnya.
jika ini tidak dapat berfungsi, mungkin Anda dapat menyarankan solusi lain untuk mendapatkan data dari file tertentu?
karena jika saya hanya melakukan projectsYaml
saya hanya mendapatkan yang pertama, menggunakan allProjectsYaml
akan membuat saya memfilter daftar di JS ...
info gatsby --clipboard
Sistem:
OS: Windows 10
CPU: x64 Intel (R) Core (TM) i5-6300HQ CPU @ 2.30GHz
Binari:
Node: 10.8.0 - D: NodeJSnode.EXE
npm: 6.2.0 - D: NodeJSnpm.CMD
Browser:
Tepi: 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-helmet: ^ 2.0.11 => 2.0.11
gatsby-plugin-sharp: ^ 1.6.48 => 1.6.48
gatsby-source-filesystem: ^ 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
error Sistem tidak dapat menemukan jalur yang ditentukan.
Kesalahan: Sistem tidak dapat menemukan jalur yang ditentukan.
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 [sebagai 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
kesalahan PENOLAKAN TIDAK TERTANGAN
Kesalahan: Sistem tidak dapat menemukan jalur yang ditentukan.
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 [sebagai 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
(browser salah, saya punya opera, chrome, dan firefox, tapi menurut saya ini tidak relevan.
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
: T / A
gatsby-node.js
: T / A
gatsby-browser.js
: T / A
gatsby-ssr.js
: T / A
Silakan periksa https://www.gatsbyjs.org/docs/graphql-reference/#filter - gatsby menggunakan operator untuk pemfilteran, jadi lebih fleksibel - dalam kasus Anda, Anda mungkin ingin menggunakan:
query { projectsYaml(title: { eq: "project1"})
- eq
artinya judul sama dengan "project1" - operator lain mengizinkan pengecualian ne
, menggunakan regex dll
Komentar yang paling membantu
Silakan periksa https://www.gatsbyjs.org/docs/graphql-reference/#filter - gatsby menggunakan operator untuk pemfilteran, jadi lebih fleksibel - dalam kasus Anda, Anda mungkin ingin menggunakan:
query { projectsYaml(title: { eq: "project1"})
-eq
artinya judul sama dengan "project1" - operator lain mengizinkan pengecualianne
, menggunakan regex dll