-
-
Save jbpros/3764182 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DEBUG: TypeError: Cannot read property 'value' of undefined | |
at _asyncMap (/home/pitbi/Projects/RaceLive/node_modules/async/lib/async.js:185:23) | |
at async.forEachSeries.iterate (/home/pitbi/Projects/RaceLive/node_modules/async/lib/async.js:108:13) | |
at async.forEachSeries.iterate (/home/pitbi/Projects/RaceLive/node_modules/async/lib/async.js:119:25) | |
at _asyncMap (/home/pitbi/Projects/RaceLive/node_modules/async/lib/async.js:187:17) | |
at async.series.results (/home/pitbi/Projects/RaceLive/node_modules/async/lib/async.js:491:34) | |
at async.forEach (/home/pitbi/Projects/RaceLive/node_modules/async/lib/async.js:94:25) | |
at bestLapSearch (/home/pitbi/Projects/RaceLive/lib/rfactor_xml_parser.js:188:19) | |
at async.forEach (/home/pitbi/Projects/RaceLive/node_modules/async/lib/async.js:86:13) | |
at Array.forEach (native) | |
at _forEach (/home/pitbi/Projects/RaceLive/node_modules/async/lib/async.js:26:24) | |
DEBUG: Program node server.js exited with code 1 | |
DEBUG: Starting child process with 'node server.js' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
RFactorXmlParser.prototype._loadDriveSession = function _loadDriveSession(callback) { | |
var self = this; | |
var drivers = self.xml.find("//Driver"); | |
var dateText = self.xml.get("/rFactorXML/RaceResults/TimeString").text(); | |
var dateMatches = /^(\d{4})\/(\d{2})\/(\d{2}) (\d\d):(\d\d):(\d\d)/.exec(dateText); | |
var date = new Date(dateMatches[1], dateMatches[2], dateMatches[3], dateMatches[4], dateMatches[5], dateMatches[6]); | |
Qualification.findOne({date: date}).exec(function (err, existingQualification) { | |
if (err) | |
return callback(err); | |
if(!existingQualification) { | |
var qualification = new Qualification ({date: date, track: self.track.id, mod: self.mod.id}); | |
drivers.forEach(function (driver) { | |
var driverName = driver.get("Name").text(); | |
var driverBestLap = self._parseDriveTime(driver.get("BestLapTime").text()); | |
var driverCar = driver.get("CarType").text(); | |
var driverPosition = driver.get("Position").text(); | |
var laps = driver.find("Lap"); | |
Driver.findOne({gameName : driverName}).exec(function (err, driverFound) { | |
if (err) | |
return callback(err); | |
if (driverFound) { | |
var entry = { | |
driver : driverFound.id, | |
bestLap : driverBestLap, | |
car : driverCar, | |
position: driverPosition, | |
laps : [] | |
}; | |
async.forEach(laps, lapsSearch, callback); | |
qualification.entries.push(entry); | |
function lapsSearch(lap, callback) { | |
var lapTime = self._parseDriveTime(lap.text()); | |
var lapAttributes = { lapTime: lapTime }; | |
lap.attrs().forEach(function (attribute) { | |
lapAttributes[attribute.name()] = attribute.value | |
}); | |
entry.laps.push(lapAttributes); | |
callback(); | |
} | |
var driverBestLaps = driverFound.bestLaps; | |
var driverBestLapAttributes = {track: self.track.id, mod: self.mod.id, bestLap: driverBestLap, qualification: qualification.id}; | |
console.log("DBBDBDBDB",driverBestLapAttributes); | |
if (driverBestLaps[0]) { | |
console.log | |
async.forEach(driverBestLaps, bestLapSearch, callback) | |
} else { | |
console.log("Add whitout preBestLap"); | |
driverFound.bestLaps.push(driverBestLapAttributes); | |
} | |
function bestLapSearch(value, callback) { | |
console.log(""); | |
if (value) { | |
if (value.track != driverBestLapAttributes.track && value.mod != driverBestLapAttributes.mod) { | |
driverFound.bestLaps.push(driverBestLapAttributes); | |
console.log("2"); | |
callback(); | |
} else if (value.track === driverBestLapAttributes.track && value.mod === driverBestLapAttributes.mod && driverBestLapAttributes.bestLap > value.bestLap) { | |
var index = driverFound.bestLaps.indexOf(driverBestLapAttributes.bestLap); | |
driverFound.bestLaps[index] = driverBestLapAttributes; | |
console.log("3"); | |
callback(); | |
} else { | |
console.log("4"); | |
callback(); | |
} | |
} else { | |
callback(); | |
} | |
}; | |
qualification.save(function (err) { | |
if (err) { | |
return callback(err); | |
} else { | |
driverFound.save(function (err) { | |
if (err) | |
return callback(err); | |
console.log("SAVE DRIVER"); | |
}); | |
return callback(null, "Qualification Added"); | |
} | |
}); | |
} | |
}); | |
}); | |
} else { | |
return callback(null, "Existing Qualification"); | |
} | |
}); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment