【问题标题】:how to handle this in node js如何在节点 js 中处理这个问题
【发布时间】:2017-06-20 14:00:44
【问题描述】:

目前我正在这样做:

文件名:userOrder.js

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

module.exports = {

        save: function() {

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

        },

        update: function() {

            // update user order record

        }

}

文件名:paymentGateway.js

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

module.exports = {

    makePayment: function() {

        // make payment
        return payment.save();

    }

}

文件名:payment.js

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

module.exports = {

        save: function() {

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

        }

}

return userOrder.update(); -> 这一行给出一个错误“TypeError: userOrder.update is not a function

【问题讨论】:

  • 其他代码仅用于保存记录。

标签: node.js kinvey


【解决方案1】:

这是因为您在 payment.jsuserOrder.js 之间使用循环引用。您可以通过在调用require 之前为module.exports 分配一个值来解决此问题,如下所示:

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();
}

不需要对paymentGateway.js 进行任何更改,因为这不是通知require 的一部分。

【讨论】:

  • 好的,让我试试,我也更新了问题.. 谢谢
  • 酷。我会更新我的答案以匹配更新后的问题。
  • @HirenMakwana 没问题 :)
【解决方案2】:

试试看:

module.exports = {

    module.save = function() {

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

    },

    module.update = function() {

        // update user order record

    }

    return module;
}

【讨论】:

    猜你喜欢
    • 2021-04-11
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 2021-11-15
    • 2019-11-10
    • 2016-07-15
    相关资源
    最近更新 更多