2015-02-10 44 views
1

從async中調用我的模塊自己的方法時出現以下錯誤。nodejs異步myMethod未定義

ReferenceError: RetriveLongitude is not defined 
    at D:\Userfiles\oozen\Workspace\sas_1.0_server\sas_1.0\backgroundProcesses\searchTravelSolutions\PositionReferences.js:234:5 
    at D:\Userfiles\oozen\Workspace\sas_1.0_server\sas_1.0\node_modules\async\lib\async.js:570:21 
    at D:\Userfiles\oozen\Workspace\sas_1.0_server\sas_1.0\node_modules\async\lib\async.js:249:17 
    at D:\Userfiles\oozen\Workspace\sas_1.0_server\sas_1.0\node_modules\async\lib\async.js:125:13 
    at Array.forEach (native) 

PositionReferences模塊如下:

var RetrieveCoordinates = function(tw, callback){ 

    async.parallel([function(callback) { 
    RetrieveLatitude(tw, callback); 
    }, function(callback) { 
    RetriveLongitude(tw, callback); 
    } 
    ], function(err, coordinates) { 
    if (err) { 
     console.log('err occuured in Lattitude/Longitude retrieval : ' + err); 
     return callback(err); 
    } 

    callback(null, coordinates); 
    }); 

} 

function RetrieveLatitude(tw, callback) { 

    var latitude = JsonInfo.getLatitude(tw); 
    // check if the user has already specified a place (e.g. Eiffel tower) in tw 
    if (latitude != undefined) { 
    return callback(null, latitude); 
    } 
    // get latitude of the airport from the DB 
    db.collection('city').find({ 
    "information.airports.code": place 
    }).toArray(function(err, position) { 
    if (err) return callback(err); 
    latitude = position['information']['city_coordinates']['latitude']; 
    console.log("[PositionReferences-RetrieveLatitude] found" + Lat); 
    return callback(null, latitude);  
    }); 
} 
function RetrieveLongitude(tw, callback) { 
    var longitude = JsonInfo.getLongitude(tw); 
    // check if the user has already specified a place (e.g. Eiffel tower) in tw 
    if (longitude != undefined) { 
    return callback(null, longitude); } 
    db.collection('city').find({ 
    "information.airports.code": place 
    }).toArray(function(err, position) { 
    if (err) return callback(err); 
    city = postion['name']; 
    longitude = position['information']['city_coordinates']['longitude']; 
    console.log("[PositionReferences-RetrieveLatitude] found" + longitude); 
    return callback(nulll, longitude); 
    }); 
} 
//module.exports.RetrieveLatitude = RetrieveLatitude; 
//module.exports.RetrieveLongitude = RetrieveLongitude; 
module.exports.RetrieveCoordinates = RetrieveCoordinates; 

除了聲明:module.exports.RetrieveLatitude

我自己也嘗試設置var that = this;,並呼籲它的緯度/經度的方法。

爲什麼沒有這項工作?

+0

該錯誤與節點 - 異步...等無關。它只是一個錯字。 – 2015-02-10 10:41:07

回答

2

你叫RetriveLongitude,而不是RetrieveLongitude