Come faccio ad astrarre la creazione di HttpResponse ma permetto comunque di codici di stato personalizzati

0

Ho creato un back-end personalizzato in NodeJs utilizzando lo schema della catena di responsabilità in modo che il sistema possa essere facilmente esteso per gestire nuovi tipi di richieste senza modificare i RequestHandler esistenti.

Il problema è che ogni RequestHandler gestisce la generazione di una risposta in modo simile. Ognuno ha funzioni _sendErrorResponse e _sendSuccessResponse. Funziona bene, ma c'è molta duplicazione del codice e limita ciò che posso fare con l'impostazione dei codici di stato. Di seguito è riportato un esempio di codice:

  _sendSuccessResponse(res){
    return (content) => {
      res.statusCode = content.statusCode;
      res.write(JSON.stringify(content));
      res.end();
    }
  }

  _sendErrorResponse(res){
    return (content) => {
      res.statusCode = 400;
      res.write(JSON.stringify(content),(err) => {
          res.end();
      });

    }

Il mio primo pensiero è stato quello di aprire le due funzioni nella classe genitore RequestHandler. Questo risolverebbe il problema della duplicazione del codice, ma non mi avrebbe permesso molta libertà nell'impostare i codici di stato. Dovrei leggere il contenuto della risposta e quindi impostare il codice di stato in base al contenuto. Il problema con questo è che accoppia il testo della risposta al gestore. Idealmente, vorrei mantenere il testo della risposta in un unico posto (dove il contenuto / o l'errore è effettivamente fatto)

Qualcuno conosce qualche schema che potrebbe risolvere questo problema?

    
posta kiwicomb123 22.08.2018 - 09:14
fonte

0 risposte

Leggi altre domande sui tag