使用Node.js中的导出函数

时间:2016-12-13 09:29:49

标签: javascript node.js

概述

我正在将authorize.net付款合并到我的应用中。使用他们的sdk他们以我不理解的方式导出函数。我正在寻找一些清晰度,所以我可以以最好的方式使用它。

我正在使用Angular 2node.js app

问题

Angular2到我正在制作http post。此帖子将表单数据传递给node server。一旦我在节点服务器中,我将数据放入数据库。但在该函数内部,我想将数据传递给来自SDK的authorize.net函数。

示例

我发布的函数的最小版本。

功能1:

 updateProfile: function(req, res) {
            var id = req.body.id;
            var email = req.body.email;
            var first_name = req.body.first_name;
            var middle_name = req.body.middle_name;
}

在名为merchant的其他目录中,我有两个文件。一个文件包含在商家数据库中创建用户配置文件的功能。他们将保留cc号码,所以我不需要在我的服务器上。

功能2:

function createCustomerProfile(callback) {
     // Stuff happens in here with the data from the first function
}

我需要将数据从第一个function传递到第二个function。在同一个目录中,它们有一个index.js文件,可以像这样导出函数,

module.exports = {
    createCustomerProfile: require('./create-customer-profile.js').createCustomerProfile
}

问题

将这些功能设置得像它们一样。如何从函数1调用函数2并将数据传递给它?他们将callback放入parameters。所以我想知道这是否意味着必须首先使用函数1作为callback而不是我正在进行的方式调用它。

所以基本上我应该让http post运行2.然后require文件中带有database insert function的文件?然后将function 1应用为callback

1 个答案:

答案 0 :(得分:1)

功能1: -

var secondFn = require('path to index.js').createCustomerProfile
updateProfile: function(req, res) {
            var id = req.body.id;
            var email = req.body.email;
            var first_name = req.body.first_name;
            var middle_name = req.body.middle_name;
            secondFn(req.body,function callback(response){
              console.log('customer profile created' , response);
            })

}

功能2: -

function createCustomerProfile(data,callback) {
     // perform operation
     var response = "custom data"
     callback(response) //call upon completion
}

您还可以在回调函数中传递参数以检查是否存在任何错误