Puoi modificare temporaneamente un modulo NodeJS interno? [duplicare]
Nov 19 2020
Voglio mettere temporaneamente del middleware nel modulo FS per registrare tutte le attività di lettura / scrittura da Node, in modo da poter fare qualcosa di simile:
const fs = require('fs');
const fsLogger = require('fs-logger');
const someModule = require('some-module');
fsLogger.bind(fs);
someModule.doMagic();
fsLogger.unbind(fs);
Ciò è effettivamente possibile?
Risposte
RandyCasburn Nov 18 2020 at 23:12
L'approccio moderno per farlo con JavaScript è tramite un oggetto proxy. Ecco la loro descrizione dai documenti:
L'oggetto Proxy viene utilizzato per definire il comportamento personalizzato per le operazioni fondamentali (ad esempio, ricerca di proprietà, assegnazione, enumerazione, invocazione di funzioni, ecc.).
Qui:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy