data.js
const jsonfile = require('jsonfile-promised')
const fs = require('fs')
module.exports = {
salvaDados(curso, tempoEstudado) {
let arquivoDoCurso = __dirname + '/data/'+ curso + '.json';
if(fs.existsSync(arquivoDoCurso)) {
this.adicionaTempoAoCurso(arquivoDoCurso, tempoEstudado);
} else {
this.criaArquivoDeCurso(arquivoDoCurso,{})
.then(() => {
this.adicionaTempoAoCurso(arquivoDoCurso, tempoEstudado);
});
}
},
adicionaTempoAoCurso(arquivoDoCurso, tempoEstudado) {
let dados = {
ultimoEstudo: new Date().toString(),
tempo: tempoEstudado
}
jsonfile.writeFile(arquivoDoCurso, dados, {spaces: 2})
.then(() => {
console.log('Tempo salvo com sucesso');
}).catch((err) => {
console.log(err);
})
},
criaArquivoDeCurso(nomeArquivo, conteudoArquivo) {
jsonfile.writeFile(nomeArquivo, conteudoArquivo)
.then(() => {
console.log('Arquivo criado')
}).catch((err) => {
console.log(err);
})
}
}
Main.js
const { app, BrowserWindow, ipcMain } = require('electron');
const data = require('./data');
app.on('ready', () => {
console.log('Aplicação iniciada');
let mainWindow = new BrowserWindow({
width: 600,
height: 400
})
mainWindow.loadURL(`file://${__dirname}/app/index.html`)
})
app.on('window-all-closed', () => {
app.quit();
})
let sobreWindow = null;
ipcMain.on('abrir-janela-sobre', () => {
if (sobreWindow == null) {
sobreWindow = new BrowserWindow({
width: 300,
height: 220,
alwaysOnTop: true,
frame: false
});
sobreWindow.on('close', () => {
sobreWindow = null
})
}
sobreWindow.loadURL(`file://${__dirname}/app/sobre.html`)
})
ipcMain.on('fechar-janela-sobre', () => {
sobreWindow.close()
})
ipcMain.on('curso-parado', (event, curso, tempoEstudado) => {
console.log(`O cruso ${curso} foi estudado por ${tempoEstudado}`);
data.salvaDados(curso, tempoEstudado);
})
Ao tentar salvar um arquivo que não existe ele abre uma janela do electron assim: A JavaScript error occured in the main process Uncaught Exemption: TypeError: Cannot read property 'then' of undefined at Object.salvaDados at EventEmmiter.ipcMain.on