2017-06-20 2 views
1
de nœud

que je fais ceci:comment gérer ce Actuellement

nom de fichier: userOrder.js

const paymentGateway = require('./paymentGateway'); 

module.exports = { 

     save: function() { 

      // save user order record 
      return paymentGateway.makePayment();  

     }, 

     update: function() { 

      // update user order record 

     } 

} 

nom: paymentGateway.js

const payment = require('./payment'); 

module.exports = { 

    makePayment: function() { 

     // make payment 
     return payment.save(); 

    } 

} 

nom de fichier: payment.js

const userOrder = require('./userOrder'); 

module.exports = { 

     save: function() { 

      // save payment record 
      return userOrder.update(); 

     } 

} 

return userOrder.update(); -> cette ligne donne une erreur "TypeError: userOrder.update est pas une fonction"

+0

L'autre code est seulement pour enregistrer enregistrer rien d'autre. –

Répondre

1

Ceci est parce que vous utilisez des références circulaires entre payment.js et userOrder.js. Vous pouvez résoudre ce problème en attribuant une valeur à module.exports avant d'appeler require, comme ceci:

userOrder.js

const userOrder = function() { }; 

module.exports = userOrder; 

const paymentGateway = require('./paymentGateway'); 

userOrder.save = function() { 
    // save user order record 
    return paymentGateway.makePayment(); 
} 

userOrder.update = function() { 
    // update user order record 
} 

payment.js

const payment = function() {}; 

module.exports = payment; 

const userOrder = require('./userOrder'); 

payment.save = function() { 
    // save payment record 
    return userOrder.update(); 
} 

Aucun changement sont requis à paymentGateway.js, car cela ne fait pas partie d'une circulaire require.

+0

Bon, laissez-moi essayer, j'ai aussi mis à jour la question .. Merci –

+0

Cool. Je mettrai à jour ma réponse pour correspondre à la question mise à jour. – dan

+0

@HirenMakwana mis à jour – dan

0

Essayez avec:

module.exports = { 

    module.save = function() { 

     // save user order record 
     return payment.save();  

    }, 

    module.update = function() { 

     // update user order record 

    } 

    return module; 
}