Node.js 如何在NodeJS中处理此问题
目前我正在这样做: 文件名:userOrder.jsNode.js 如何在NodeJS中处理此问题,node.js,kinvey,Node.js,Kinvey,目前我正在这样做: 文件名:userOrder.js const paymentGateway = require('./paymentGateway'); module.exports = { save: function() { // save user order record return paymentGateway.makePayment(); }, update
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();
}
}
返回userOrder.update();->此行给出一个错误“类型错误:userOrder.update不是一个函数”请尝试:
module.exports = {
module.save = function() {
// save user order record
return payment.save();
},
module.update = function() {
// update user order record
}
return module;
}
这是因为您在
payment.js
和userOrder.js
之间使用循环引用。您可以通过为模块指定一个值来解决此问题。在调用require
之前导出,如下所示:
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
}
const payment = function() {};
module.exports = payment;
const userOrder = require('./userOrder');
payment.save = function() {
// save payment record
return userOrder.update();
}
payment.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
}
const payment = function() {};
module.exports = payment;
const userOrder = require('./userOrder');
payment.save = function() {
// save payment record
return userOrder.update();
}
无需更改paymentGateway.js
,因为这不是循环require
的一部分 其他代码只用于保存记录,没有其他代码。好的,让我试试,我还更新了问题。。谢谢你。我将更新我的答案以匹配更新的问题。@HirenMakwana没问题:)