Vue Storefront: Das Backend erweitern

Ich mache weiterhin Werbung fΓΌr meinen Empfehlungslink zum IaaS-Anbieter Exostate und reiche den zweiten Artikel meiner Werbekampagne ein. Im ersten Artikel habe ich die Anwendung ' vue-storefront ' als separaten Server bereitgestellt und gestartet, ohne an Daten gebunden zu sein, und mein kommerzielles Interesse am Verkauf von Exoscale-Diensten auf solch absurde Weise maskiert. Meine erbΓ€rmlichen Versuche wurden von einem Kollegen von aol-nnov erfolgreich erΓΆffnet und ich musste sauberes Wasser trinken . Nun, die zweite Phase meiner Werbekampagne unterscheidet sich nicht von der ersten - dieselbe Seite mit einem Fehler:


Bild


Die Vorderseite ist jetzt mit dem Backend verbunden (' vue-storefront-api '), aber die gleiche dΓΌstere Meldung " Etwas ist schief gelaufen ... " im Browser des Clients. Daher habe ich, nachdem ich die falsche Bescheidenheit verworfen hatte, meinen Verweislink zu kat gerendert und die gesamte Verkleidung unter kat gestellt - Details darΓΌber, wie ich Vue Storefront mit der Vue Storefront-API kombiniert habe.


Zweck


In dieser Phase habe ich mir die Aufgabe gestellt, ein minimal funktionales Backend zu erstellen und die Front darauf zu schließen.


Schema


Um es ein wenig klarer zu machen, gebe ich ein Bild, das ich basierend auf der Analyse von Anwendungskonfigurationen entwickelt habe:


Bild


Die vue-storefront Bereitstellungssequenz vue-storefront ich in einem vorherigen Artikel zitiert habe. Daher mΓΌssen vue-storefront-api , Elasticsearch und Redis angehoben werden. Gemessen an der Adresse / dem Port in der configQL ist vue-storefront-api fΓΌr GraphQL selbst verantwortlich.


Arbeitsumgebung


FΓΌr diese Phase hatte ich auch eine kleine Version des Linux Ubuntu 18.04 LTS 64-Bit-Servers (2x 2198 MHz CPU, 2 GB RAM, 10 GB Festplatte). Das SchΓΆne an IaaS ist, dass Sie immer wieder von vorne anfangen kΓΆnnen, indem Sie zuvor fehlgeschlagene Experimente in den MΓΌll werfen.


Erste Stufe


Hier ist das Skript zum Wiederholen der Schritte des ersten Schritts:


 #!/usr/bin/env/bash set -e sudo apt update sleep 2 # wait 2 second before upgrade to prevent en error sudo apt upgrade -y sudo curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - sudo apt install -y nodejs sudo curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - sudo echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list sudo apt update && sudo apt install yarn sudo npm install pm2@latest -g sudo npm install @vue-storefront/cli@latest -g # interactive command below: use 'Stable versions' / 'v1.10.4' (or latest) / 'Manual installation' vsf init 

Es wird notwendig sein, die automatische Bereitstellung von vue-storefront ohne menschliches Eingreifen in Betracht zu ziehen. Aber vsf mit vsf .


Installieren Sie Elasticsearch


 # apt install openjdk-11-jre-headless -y # java -version openjdk version "11.0.4" 2019-07-16 OpenJDK Runtime Environment (build 11.0.4+11-post-Ubuntu-1ubuntu218.04.3) OpenJDK 64-Bit Server VM (build 11.0.4+11-post-Ubuntu-1ubuntu218.04.3, mixed mode, sharing) # apt-get install apt-transport-https # wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - # add-apt-repository "deb https://artifacts.elastic.co/packages/7.x/apt stable main" # apt update # apt install elasticsearch -y 

Bevor Sie den Dienst starten, müssen Sie die Konfiguration von Elasticsearch Àndern, damit Sie von außen auf den Dienst zugreifen kânnen (dies ist nicht erforderlich, aber für mich bequemer):


 $ sudo nano /etc/elasticsearch/elasticsearch.yml cluster.name: habr_demo node.name: exo01 path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch network.host: 0.0.0.0 discovery.seed_hosts: [] 

Servicestart:


 # service elasticsearch restart 

Und ΓΌberprΓΌfe seine Leistung:


 $ curl -X GET "http://localhost:9200/?pretty" { "name" : "exo01", "cluster_name" : "habr_demo", "cluster_uuid" : "_na_", "version" : { "number" : "7.4.2", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "2f90bbf7b93631e52bafb59b3b049cb44ec25e96", "build_date" : "2019-10-28T20:40:44.881551Z", "build_snapshot" : false, "lucene_version" : "8.2.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" } 

Installieren Sie Redis


 # apt install redis-server -y 

Genau wie Elasticsearch konfiguriere ich Redis so, dass von außen zugegriffen werden kann:


 # nano /etc/redis/redis.conf bind 0.0.0.0 # service redis-server start 

Ich starte den Dienst und ΓΌberprΓΌfe seine Leistung:


 # service redis-server start # redis-cli > set test "It's working!" > get test > exit 

Installieren Sie vue-storefront-api


 $ cd ~ $ git clone https://github.com/DivanteLtd/vue-storefront-api.git 

VerknΓΌpfung von Front und Backend


Vordere Konfiguration


Die verfΓΌgbaren Front-Konfigurationsoptionen finden Sie in ~/vue-storefront/config/default.json . Ich habe einige Optionen in ~/vue-storefront/config/local.json :


 { "server": { "host": "0.0.0.0", "port": 3000 }, "redis": { "host": "194.182.181.149", "port": 6379, "db": 0 }, "graphql": { "host": "194.182.181.149", "port": 8080 }, "api": { "url": "http://194.182.181.149:8080" }, "elasticsearch": {} } 

server.host|.port - Ich binde einen NodeJS-Server, der den Inhalt fΓΌr das Frontend an alle verfΓΌgbaren IP-Adressen auf dem entsprechenden Port ausgibt.


graphql und graphql - binden an die externe IP-Adresse meines graphql . Ich weiß nicht, ob der NodeJS-Server, der den Inhalt ausgibt, diese Einstellungen verwendet oder ob diese Einstellungen clientseitig im Browser verwendet werden. Daher habe ich die externe Adresse angegeben.


api.uri - hier muss unbedingt die externe IP-Adresse des Servers eingetragen werden, weil In der vorherigen Phase habe ich API-Aufrufe vom Browser (PWA-Anwendungen) in den Anforderungsprotokollen (Registerkarte " Network in der Symbolleiste) gesehen. Dies ist die Portadresse, an der der NodeJS-Server der Anwendung Vue vue-storefront-api hΓ€ngt.


Backend-Konfiguration


VerfΓΌgbare Konfigurationsoptionen kΓΆnnen auch in ~/vue-storefront-api/config/default.json . Hier sind die ΓΌberschriebenen Optionen in ~/vue-storefront-api/config/local.json :


 { "server": { "host": "0.0.0.0", "port": 8080 }, "elasticsearch": { "host": "localhost", "port": 9200 }, "redis": { "host": "localhost", "port": 6379 } } 

server.host|.port - Ich binde einen NodeJS-Server, der den Inhalt fΓΌr die API bereitstellt, an alle verfΓΌgbaren IP-Adressen auf dem entsprechenden Port.


elasticsearch und redis befinden sich auf demselben Host wie der API-Server, daher wiederhole ich nur die Standardparameter.


Anwendungserstellung


Front


 $ cd ~/vue-storefront $ yarn install $ yarn build 

Backend


 $ cd ~/vue-storefront-api $ yarn install $ yarn build 

Anwendungen starten und stoppen


 $ cd ~/vue-storefront-api $ yarn start ... $ cd ~/vue-storefront $ yarn start ... [PM2][WARN] Applications server not running, starting... [PM2] App [server] launched (4 instances) β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ App name β”‚ id β”‚ mode β”‚ pid β”‚ status β”‚ restart β”‚ uptime β”‚ cpu β”‚ mem β”‚ user β”‚ watching β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ api β”‚ 0 β”‚ fork β”‚ 3690 β”‚ online β”‚ 0 β”‚ 11s β”‚ 0% β”‚ 85.2 MB β”‚ ubuntu β”‚ disabled β”‚ β”‚ o2m β”‚ 1 β”‚ fork β”‚ 3696 β”‚ online β”‚ 0 β”‚ 11s β”‚ 0% β”‚ 48.4 MB β”‚ ubuntu β”‚ disabled β”‚ β”‚ server β”‚ 2 β”‚ cluster β”‚ 3763 β”‚ online β”‚ 0 β”‚ 0s β”‚ 26.7% β”‚ 66.9 MB β”‚ ubuntu β”‚ disabled β”‚ β”‚ server β”‚ 3 β”‚ cluster β”‚ 3770 β”‚ online β”‚ 0 β”‚ 0s β”‚ 0% β”‚ 68.1 MB β”‚ ubuntu β”‚ disabled β”‚ β”‚ server β”‚ 4 β”‚ cluster β”‚ 3785 β”‚ online β”‚ 0 β”‚ 0s β”‚ 0% β”‚ 40.9 MB β”‚ ubuntu β”‚ disabled β”‚ β”‚ server β”‚ 5 β”‚ cluster β”‚ 3796 β”‚ online β”‚ 0 β”‚ 0s β”‚ 0% β”‚ 40.9 MB β”‚ ubuntu β”‚ disabled β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ Use `pm2 show <id|name>` to get more details about an app Done in 1.49s. - $ cd ~/vue-storefront-api $ yarn start ... $ cd ~/vue-storefront $ yarn start ... [PM2][WARN] Applications server not running, starting... [PM2] App [server] launched (4 instances) β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ App name β”‚ id β”‚ mode β”‚ pid β”‚ status β”‚ restart β”‚ uptime β”‚ cpu β”‚ mem β”‚ user β”‚ watching β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ api β”‚ 0 β”‚ fork β”‚ 3690 β”‚ online β”‚ 0 β”‚ 11s β”‚ 0% β”‚ 85.2 MB β”‚ ubuntu β”‚ disabled β”‚ β”‚ o2m β”‚ 1 β”‚ fork β”‚ 3696 β”‚ online β”‚ 0 β”‚ 11s β”‚ 0% β”‚ 48.4 MB β”‚ ubuntu β”‚ disabled β”‚ β”‚ server β”‚ 2 β”‚ cluster β”‚ 3763 β”‚ online β”‚ 0 β”‚ 0s β”‚ 26.7% β”‚ 66.9 MB β”‚ ubuntu β”‚ disabled β”‚ β”‚ server β”‚ 3 β”‚ cluster β”‚ 3770 β”‚ online β”‚ 0 β”‚ 0s β”‚ 0% β”‚ 68.1 MB β”‚ ubuntu β”‚ disabled β”‚ β”‚ server β”‚ 4 β”‚ cluster β”‚ 3785 β”‚ online β”‚ 0 β”‚ 0s β”‚ 0% β”‚ 40.9 MB β”‚ ubuntu β”‚ disabled β”‚ β”‚ server β”‚ 5 β”‚ cluster β”‚ 3796 β”‚ online β”‚ 0 β”‚ 0s β”‚ 0% β”‚ 40.9 MB β”‚ ubuntu β”‚ disabled β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ Use `pm2 show <id|name>` to get more details about an app Done in 1.49s. pid β”‚ Status β”‚ Neustart β”‚ uptime β”‚ cpu β”‚ mem β”‚ Benutzer β”‚ beobachten β”‚ $ cd ~/vue-storefront-api $ yarn start ... $ cd ~/vue-storefront $ yarn start ... [PM2][WARN] Applications server not running, starting... [PM2] App [server] launched (4 instances) β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ App name β”‚ id β”‚ mode β”‚ pid β”‚ status β”‚ restart β”‚ uptime β”‚ cpu β”‚ mem β”‚ user β”‚ watching β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ api β”‚ 0 β”‚ fork β”‚ 3690 β”‚ online β”‚ 0 β”‚ 11s β”‚ 0% β”‚ 85.2 MB β”‚ ubuntu β”‚ disabled β”‚ β”‚ o2m β”‚ 1 β”‚ fork β”‚ 3696 β”‚ online β”‚ 0 β”‚ 11s β”‚ 0% β”‚ 48.4 MB β”‚ ubuntu β”‚ disabled β”‚ β”‚ server β”‚ 2 β”‚ cluster β”‚ 3763 β”‚ online β”‚ 0 β”‚ 0s β”‚ 26.7% β”‚ 66.9 MB β”‚ ubuntu β”‚ disabled β”‚ β”‚ server β”‚ 3 β”‚ cluster β”‚ 3770 β”‚ online β”‚ 0 β”‚ 0s β”‚ 0% β”‚ 68.1 MB β”‚ ubuntu β”‚ disabled β”‚ β”‚ server β”‚ 4 β”‚ cluster β”‚ 3785 β”‚ online β”‚ 0 β”‚ 0s β”‚ 0% β”‚ 40.9 MB β”‚ ubuntu β”‚ disabled β”‚ β”‚ server β”‚ 5 β”‚ cluster β”‚ 3796 β”‚ online β”‚ 0 β”‚ 0s β”‚ 0% β”‚ 40.9 MB β”‚ ubuntu β”‚ disabled β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ Use `pm2 show <id|name>` to get more details about an app Done in 1.49s. 

Haltestelle:


 $ pm2 stop all 

Protokolle anzeigen:


 $ pm2 log 

Anwendungsverbindung


Anwendungsadresse: http://194.182.181.149//000/ Infolgedessen wird ganz am Anfang eine Fehlermeldung im Browser angezeigt. In den Protokollen des API-Servers kΓΆnnen jedoch Browser-Aufrufe an die API aufgezeichnet werden:


 $ pm2 log 3|server | 2019-11-16 07:44:33: Error during render : / 3|server | 2019-11-16 07:44:33: Error: FetchError in request to ES: FetchError: invalid json response body at http://194.182.181.149:8080/api/catalog/vue_storefront_catalog/product/_search?_source_exclude=%2A.msrp_display_actual_price_type%2Crequired_options%2Cupdated_at%2Ccreated_at%2Cattribute_set_id%2Coptions_container%2Cmsrp_display_actual_price_type%2Chas_options%2Cstock.manage_stock%2Cstock.use_config_min_qty%2Cstock.use_config_notify_stock_qty%2Cstock.stock_id%2Cstock.use_config_backorders%2Cstock.use_config_enable_qty_inc%2Cstock.enable_qty_increments%2Cstock.use_config_manage_stock%2Cstock.use_config_min_sale_qty%2Cstock.notify_stock_qty%2Cstock.use_config_max_sale_qty%2Cstock.use_config_max_sale_qty%2Cstock.qty_increments%2Csmall_image%2Csgn%2C%2A.sgn&from=0&request=%7B%22query%22%3A%7B%22bool%22%3A%7B%22filter%22%3A%7B%22bool%22%3A%7B%22must%22%3A%5B%7B%22terms%22%3A%7B%22category.name.keyword%22%3A%5B%22Tees%22%5D%7D%7D%2C%7B%22terms%22%3A%7B%22visibility%22%3A%5B2%2C3%2C4%5D%7D%7D%2C%7B%22terms%22%3A%7B%22status%22%3A%5B0%2C1%5D%7D%7D%5D%7D%7D%7D%7D%7D&size=8&sort=created_at%3Adesc reason: Unexpected end of JSON input 3|server | at w (core/server-entry.ts:23:25) 3|server | at server-bundle.js:1:468554 3|server | at processTicksAndRejections (internal/process/task_queues.js:93:5) 3|server | 2019-11-16 07:44:33: whole request [/error]: 56ms 0|api | 2019-11-16 07:44:34: OPTIONS /api/cart/create?token= 204 1.320 ms - 0 0|api | 2019-11-16 07:44:34: POST /api/cart/create?token= 200 465.416 ms - 56 0|api | 2019-11-16 07:44:34: OPTIONS /api/cart/pull?token=&cartId=35bea3b7dcf8fb841187d69489fe8c51 204 0.239 ms - 0 0|api | 2019-11-16 07:44:34: GET /api/cart/pull?token=&cartId=35bea3b7dcf8fb841187d69489fe8c51 200 103.949 ms - 24 2Cattribute_set_id% 2Coptions_container% 2Cmsrp_display_actual_price_type% 2Chas_options% 2Cstock.manage_stock% 2Cstock.use_config_min_qty% 2Cstock.use_config_notify_stock_qty% 2Cstock.stock_id% 2Cstock.use_config_backorders% 2Cstock.use_config_enable_qty_inc% 2Cstock.enable_qty_increments% 2Cstock.use_config_manage_stock% 2Cstock $ pm2 log 3|server | 2019-11-16 07:44:33: Error during render : / 3|server | 2019-11-16 07:44:33: Error: FetchError in request to ES: FetchError: invalid json response body at http://194.182.181.149:8080/api/catalog/vue_storefront_catalog/product/_search?_source_exclude=%2A.msrp_display_actual_price_type%2Crequired_options%2Cupdated_at%2Ccreated_at%2Cattribute_set_id%2Coptions_container%2Cmsrp_display_actual_price_type%2Chas_options%2Cstock.manage_stock%2Cstock.use_config_min_qty%2Cstock.use_config_notify_stock_qty%2Cstock.stock_id%2Cstock.use_config_backorders%2Cstock.use_config_enable_qty_inc%2Cstock.enable_qty_increments%2Cstock.use_config_manage_stock%2Cstock.use_config_min_sale_qty%2Cstock.notify_stock_qty%2Cstock.use_config_max_sale_qty%2Cstock.use_config_max_sale_qty%2Cstock.qty_increments%2Csmall_image%2Csgn%2C%2A.sgn&from=0&request=%7B%22query%22%3A%7B%22bool%22%3A%7B%22filter%22%3A%7B%22bool%22%3A%7B%22must%22%3A%5B%7B%22terms%22%3A%7B%22category.name.keyword%22%3A%5B%22Tees%22%5D%7D%7D%2C%7B%22terms%22%3A%7B%22visibility%22%3A%5B2%2C3%2C4%5D%7D%7D%2C%7B%22terms%22%3A%7B%22status%22%3A%5B0%2C1%5D%7D%7D%5D%7D%7D%7D%7D%7D&size=8&sort=created_at%3Adesc reason: Unexpected end of JSON input 3|server | at w (core/server-entry.ts:23:25) 3|server | at server-bundle.js:1:468554 3|server | at processTicksAndRejections (internal/process/task_queues.js:93:5) 3|server | 2019-11-16 07:44:33: whole request [/error]: 56ms 0|api | 2019-11-16 07:44:34: OPTIONS /api/cart/create?token= 204 1.320 ms - 0 0|api | 2019-11-16 07:44:34: POST /api/cart/create?token= 200 465.416 ms - 56 0|api | 2019-11-16 07:44:34: OPTIONS /api/cart/pull?token=&cartId=35bea3b7dcf8fb841187d69489fe8c51 204 0.239 ms - 0 0|api | 2019-11-16 07:44:34: GET /api/cart/pull?token=&cartId=35bea3b7dcf8fb841187d69489fe8c51 200 103.949 ms - 24 2Cstock.qty_increments% 2Csmall_image% 2Csgn% 2C% 2A.sgn & from = $ pm2 log 3|server | 2019-11-16 07:44:33: Error during render : / 3|server | 2019-11-16 07:44:33: Error: FetchError in request to ES: FetchError: invalid json response body at http://194.182.181.149:8080/api/catalog/vue_storefront_catalog/product/_search?_source_exclude=%2A.msrp_display_actual_price_type%2Crequired_options%2Cupdated_at%2Ccreated_at%2Cattribute_set_id%2Coptions_container%2Cmsrp_display_actual_price_type%2Chas_options%2Cstock.manage_stock%2Cstock.use_config_min_qty%2Cstock.use_config_notify_stock_qty%2Cstock.stock_id%2Cstock.use_config_backorders%2Cstock.use_config_enable_qty_inc%2Cstock.enable_qty_increments%2Cstock.use_config_manage_stock%2Cstock.use_config_min_sale_qty%2Cstock.notify_stock_qty%2Cstock.use_config_max_sale_qty%2Cstock.use_config_max_sale_qty%2Cstock.qty_increments%2Csmall_image%2Csgn%2C%2A.sgn&from=0&request=%7B%22query%22%3A%7B%22bool%22%3A%7B%22filter%22%3A%7B%22bool%22%3A%7B%22must%22%3A%5B%7B%22terms%22%3A%7B%22category.name.keyword%22%3A%5B%22Tees%22%5D%7D%7D%2C%7B%22terms%22%3A%7B%22visibility%22%3A%5B2%2C3%2C4%5D%7D%7D%2C%7B%22terms%22%3A%7B%22status%22%3A%5B0%2C1%5D%7D%7D%5D%7D%7D%7D%7D%7D&size=8&sort=created_at%3Adesc reason: Unexpected end of JSON input 3|server | at w (core/server-entry.ts:23:25) 3|server | at server-bundle.js:1:468554 3|server | at processTicksAndRejections (internal/process/task_queues.js:93:5) 3|server | 2019-11-16 07:44:33: whole request [/error]: 56ms 0|api | 2019-11-16 07:44:34: OPTIONS /api/cart/create?token= 204 1.320 ms - 0 0|api | 2019-11-16 07:44:34: POST /api/cart/create?token= 200 465.416 ms - 56 0|api | 2019-11-16 07:44:34: OPTIONS /api/cart/pull?token=&cartId=35bea3b7dcf8fb841187d69489fe8c51 204 0.239 ms - 0 0|api | 2019-11-16 07:44:34: GET /api/cart/pull?token=&cartId=35bea3b7dcf8fb841187d69489fe8c51 200 103.949 ms - 24 

Fazit


Es ist gelungen, einen Schritt weiter zu gehen - Vue Storefront PWA kommuniziert mit der Vue Storefront-API. Als nΓ€chstes mΓΌssen Sie sich mit dem Inhalt des Backends befassen. Welche Daten werden in Elasticsearch indiziert, wie gelangen sie dorthin und wie werden sie abgerufen?


Vielen Dank fΓΌr das Lesen und klicken Sie auf meinen Empfehlungslink. Verdammt noch mal, um ihretwillen hat sich hier all das angesammelt.

Source: https://habr.com/ru/post/de476022/


All Articles