我已经尝试了,但我不知道如何在另一个文件中调用该函数

时间:2015-02-16 09:41:14

标签: node.js

先生/女士从一个客户端到另一个服务器扩展了node.js的流程,动态参数从用户接口传递到基于这些参数的api,我们将从api获得输出,例如saber api等。

exports.flightDestinations = function(req, res) {
    var callback = function(error, data) {
        if (error) {
            // Your error handling here
            console.log(error);
        } else {
            // Your success handling here
            // console.log(JSON.parse(data));
            res.send(JSON.parse(data));

        }
    };

    sabre_dev_studio_flight.airports_top_destinations_lookup({
        topdestinations: '50'
    }, callback);
};

我们希望用户的这个值为50 ......以及如何给出这个值?以及如何在node.js中调用这个函数。

1 个答案:

答案 0 :(得分:0)

exports变量最初设置为同一个对象(即它是一个简写"别名"),所以在模块代码中你通常会写这样的东西:

var myFunc1 = function() { ... };
var myFunc2 = function() { ... };
exports.myFunc1 = myFunc1;
exports.myFunc2 = myFunc2;

导出(或"公开")内部作用域函数myFunc1和myFunc2。

在调用代码中,您将使用:

var m = require('mymodule');
m.myFunc1();

其中最后一行显示require的结果(通常)只是一个可以访问其属性的普通对象。

注意:如果你覆盖导出,那么它将不再引用module.exports。因此,如果您希望为导出分配新对象(或函数引用),那么您还应该将该新对象分配给module.exports

值得注意的是,添加到exports对象的名称不必与模块的内部范围名称相同,因为您要添加的值,所以您可以拥有:

var myVeryLongInternalName = function() { ... };
exports.shortName = myVeryLongInternalName;
// add other objects, functions, as required

接下来是:

var m = require('mymodule');
m.shortName(); // invokes module.myVeryLongInternalName