728x90
300x250
일렉트론 소스 변경시 바로바로 적용이 되게 하려고 main.js 상단에 아래와 같은 소스를 넣어놨었다.
require('electron-reload')(__dirname, {
electron : require(`${__dirname}/node_modules/electron`)
})
근데 위 소스가 후에 내게 빅엿이 될줄은 상상도 못했다 ..
sqlite3 를 연동하고나서 insert 구문을 테스트하는데 페이지가 미친듯이 무한새로고침이 되는게 아닌가 ..
다른것도 아니고 db insert 할때 그모양이 되니 난리도 아니다
결국 상단에 자동새로고침 소스 주석 처리해주니 한번만 실행 되면서 잘 들어간다 ..
main.js
const { app, BrowserWindow, Menu } = require('electron');
/*
require('electron-reload')(__dirname, {
electron : require(`${__dirname}/node_modules/electron`)
})
*/
Menu.setApplicationMenu(false)
function createWindow () {
let win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
enableRemoteModule: false,
}
});
win.webContents.openDevTools();
win.loadFile('index.html');
}
app.on('ready', createWindow);
const scripts = require('./script.js');
const { ipcMain } = require('electron')
ipcMain.on('insert', (event, arg, arg2) => {
console.log("=================main.js=================");
scripts.insert(arg, arg2);
});
script.js
const sqlite3 = require('sqlite3').verbose();
let isConn = false;
let db = new sqlite3.Database('./data/DB.db', sqlite3.OPEN_READWRITE, (err) => {
if (err) {
console.error(err.message);
} else {
console.log('Connected to the DB database.');
isConn = true;
db.run('CREATE TABLE IF NOT EXISTS TEST ( IDX INTEGER PRIMARY KEY, NAME TEXT, DESC TEXT, DATE TEXT )',[], arg=>{
console.log('create',arg);
});
}
});
module.exports.insert = function(arg, arg2){
if (isConn) {
db.run('INSERT INTO TEST(NAME,DESC,DATE) VALUES(?,?,datetime("now"))', [arg, arg2], (err) => {
//console.log(`A row has been inserted with rowid ${this.lastID}`);
if (err) {
return console.log(err.message);
}
});
}
};
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>일렉트론 Sqlite 테스트</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- <script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> -->
</head>
<body>
<a href='other.html'>Next</a>
</body>
</html>
<script>
const { ipcRenderer } = require('electron');
ipcRenderer.send('insert', '제목 테스트', '내용 테스트');
</script>
728x90
300x250
'IT > Electron' 카테고리의 다른 글
[Electron] exe 창 하나만 뜨게하기 (0) | 2021.04.02 |
---|---|
[Electron] 일렉트론 exe 실행 파일 빌드 npm run build:win64 (2) | 2021.03.24 |
[Electron] 일렉트론 프로그램 닫기 클릭시 트레이로 숨기기 main.js (0) | 2021.03.24 |
[Electron] 일렉트론 프로젝트 생성 및 실행 npm start (0) | 2021.03.24 |
[Electron] require is not defined 해결 방법 (8) | 2021.03.16 |