I'm working on a save function for my game which runs on Browserify, with Electron displaying the game. I need to be able to save the game, and I thought I figured it out when I used it through the Terminal. But when I ran it in Electron, I got this error:
TypeError: Cannot read property 'toString' of undefined at http://localhost:9966/Code/Scenes/tutorial.js:410:25 at http://localhost:9966/Code/Scenes/tutorial.js:33660:20 at loop (http://localhost:9966/Code/Scenes/tutorial.js:34113:20) at http://localhost:9966/Code/Scenes/tutorial.js:34101:21 at http://localhost:9966/Code/Scenes/tutorial.js:34061:36 at dispatchError (http://localhost:9966/Code/Scenes/tutorial.js:36093:7) at http://localhost:9966/Code/Scenes/tutorial.js:35591:14 at http://localhost:9966/Code/Scenes/tutorial.js:34485:14 at IDBTransaction.getTransaction.oncomplete (http://localhost:9966/Code/Scenes/tutorial.js:31262:17)
message
:
"Cannot read property 'toString' of undefined"
stack
:
"TypeError: Cannot read property 'toString' of undefined↵ at http://localhost:9966/Code/Scenes/tutorial.js:410:25↵ at http://localhost:9966/Code/Scenes/tutorial.js:33660:20↵ at loop (http://localhost:9966/Code/Scenes/tutorial.js:34113:20)↵ at http://localhost:9966/Code/Scenes/tutorial.js:34101:21↵ at http://localhost:9966/Code/Scenes/tutorial.js:34061:36↵ at dispatchError (http://localhost:9966/Code/Scenes/tutorial.js:36093:7)↵ at http://localhost:9966/Code/Scenes/tutorial.js:35591:14↵ at http://localhost:9966/Code/Scenes/tutorial.js:34485:14↵ at IDBTransaction.getTransaction.oncomplete (http://localhost:9966/Code/Scenes/tutorial.js:31262:17)"
the code:
fs.readFile('Code/JSON files/Player.save', function(err, data) {
var saveData = data.toString()
saveArray = saveData.split(',')
console.log(saveArray[0])
console.log(saveArray[1])
console.log(saveArray[2])
});
EDIT: Apparently theres a wrapper for Broswerify for fs, but now fs.existsSync
doesn't work.
var load = require('../Functions/Load')
// var save = require('../Functions/Save')
var saveArray = []
var saveData = load("Code/JSON files/Player.save")
console.log(saveData + "\n")
saveArray = saveData.split(',')
console.log(saveArray[0])
console.log(saveArray[1])
console.log(saveArray[2])
load function:
module.exports = load
const fs = require('browserify-fs')
function load(path) {
try {
if (fs.existsSync(path)) {
//file exists, read it!
var contents = fs.readFileSync(path.toString(), 'utf8');
return contents;
}
} catch(err) {
console.error(err)
}
}