nodejs async myMethod未定义

时间:2015-02-10 10:08:29

标签: node.js node-async

从异步中调用我自己的模块方法时出现以下错误。

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;并在其上调用Lat / Long方法。

为什么没有这项工作?

1 个答案:

答案 0 :(得分:2)

您正在呼叫RetriveLongitude,而不是RetrieveLongitude