Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Il codice dell'App

Dopo aver analizzato la parte relativa al Package.json e alle impostazioni per SSL passiamo al codice della nostra App per la sincronizzazione con NodeJS e MongoDB.
Dopo aver analizzato la parte relativa al Package.json e alle impostazioni per SSL passiamo al codice della nostra App per la sincronizzazione con NodeJS e MongoDB.
Link copiato negli appunti

In questa fase viene effettuata una richiesta GET al sito in WooCommerce utilizzando l'endpoint /wp-json/wc/v2/products con le credenziali di accesso. Lo scheletro della nostra App è il seguente:

'use strict';
const express = require('express');
const fs = require('fs');
const https = require('https');
const port = process.env.PORT || 3000;
const app = express();
const routes = require('./routes');
const API = require('./lib/API');
const sslOptions = {
  key: fs.readFileSync('privkey.pem'),
  cert: fs.readFileSync('fullchain.pem')
 };
 app.disable('x-powered-by');
 app.set('view engine', 'ejs');
 app.use( (req, res, next ) => {
     req.API = API;
     next();
 });
 // Qui le route
 app.get('/products', routes.products);
 https.createServer(sslOptions, app).listen(port);

La gestione delle chiamate alle API è affidata alla classe API che abbiamo reso disponibile in tutte le route della nostra App tramite la funzione di middleware definita in .use(). In questo modo ora l'oggetto request ha un riferimento a tale classe visibile per tutto il ciclo di vita dell'applicazione.

La classe è molto semplice. Inizia richiedendo il modulo WooCommerce e definendo le opzioni di base:

'use strict';
const WC = require('woocommerce');
const WooCommerce = new WC({
    url: 'https://ecommerce.com',
    ssl: true,
    consumerKey: 'ck_123456789abcd',
    secret: 'cs_abcdefg12345'
});

Ora viene il corpo della classe:

class API {
static products() {
    return WooCommerce.get('/products');
}
}
module.exports = API;

Il metodo statico products() restituisce una Promise che puo avere due risultati:

  1. La richiesta ha successo e la Promise si risolve con un array di prodotti in formato JSON.
  2. La richiesta fallisce e la Promise restituisce un errore generato dal modulo WooCommerce.

Lo useremo in questo modo nella route specifica:

'use strict';
// routes/index.js
module.exports = {
    products: (req, res) => {
        req.API.products().then(data => {
           res.render('products', {products: data.products});
        }).catch(err => {
           res.json(err);
        });
    }
};

Il risultato viene mostrato di seguito.

Figura 1. Pagina dei prodotti.
Pagina dei prodotti

Ti consigliamo anche