初回時DBテーブルを作りdb/mylog.db
ファイルを出力するようにした。
ブツ
インストール&実行
NAME='Electron.MyLog.20220910134158'
git clone https://github.com/ytyaru/$NAME
cd $NAME
npm install
npm start
準備
- GitHubアカウントを作成する
repo
スコープ権限をもったアクセストークンを作成する- インストール&実行してアプリ終了する
db/setting.json
ファイルが自動作成される
db/setting.json
に以下をセットしファイル保存するusername
:任意のGitHubユーザ名email
:任意のGitHubメールアドレスtoken
:repo
スコープ権限を持ったトークンrepo.name
:任意リポジトリ名address
:任意モナコイン用アドレス
dst/mytestrepo/.git
が存在しないことを確認する(あればdst
ごと削除する)- GitHub上に同名リモートリポジトリが存在しないことを確認する(あれば削除する)
実行
npm start
で起動またはアプリでCtrl+Shift+Rキーを押す(リロードする)git init
コマンドが実行されるrepo/リポジトリ名
ディレクトリが作成され、その配下に.git
ディレクトリが作成される
- [createRepo][]実行後、リモートリポジトリが作成される
GitHub Pages デプロイ
アップロードされたファイルからサイトを作成する。
- アップロードしたユーザのリポジトリページにアクセスする(
https://github.com/ユーザ名/リポジトリ名
) - 設定ページにアクセスする(
https://github.com/ユーザ名/リポジトリ名/settings
) Pages
ページにアクセスする(https://github.com/ユーザ名/リポジトリ名/settings/pages
)Source
のコンボボックスがDeploy from a branch
になっていることを確認するBranch
をmaster
にし、ディレクトリを/(root)
にし、Saveボタンを押す- F5キーでリロードし、そのページに
https://ytyaru.github.io/リポジトリ名/
のリンクが表示されるまでくりかえす(数分かかる) https://ytyaru.github.io/リポジトリ名/
のリンクを参照する(デプロイ完了してないと404エラー)
すべて完了したリポジトリとそのサイト例が以下。
やったこと
- 新規追加
- 初回時DBテーブルを作り
db/mylog.db
ファイルを出力するようにした
- 初回時DBテーブルを作り
- バグ修正
- DBからつぶやきを取得するとき0件だとエラーになるの修正した
main.js
ipcMain.handle('get', async(event) => {
- 削除ボタン押下後、投げモナボタンが表示されないバグ修正
- DBからつぶやきを取得するとき0件だとエラーになるの修正した
- リファクタリング
main.js
- ipcMainではデフォルト引数が使えないので削除した
ipcMain.handle('get', async(event) => {
await loadDb(path)
を削除した- 必ず
get()
より前にloadDb()
を呼び出すようにする
- ipcMainではデフォルト引数が使えないので削除した
preload.js
- 不要コード削除
- 画面フォーカス
- つぶくやく、削除が正常終了したらテキストエリアにフォーカスする
初回時DB作成
async function loadDb(filePath) {
if (null === filePath) { filePath = `src/db/mylog.db` }
if (!lib.has(`DB`)) {
const SQL = await initSqlJs().catch(e=>console.error(e))
lib.set(`SQL`, SQL)
if (fs.existsSync(filePath)) {
const db = new SQL.Database(new Uint8Array(fs.readFileSync(filePath)))
lib.set(`DB`, db)
} else {
const db = new SQL.Database()
lib.set(`DB`, db)
createTable()
fs.writeFileSync(filePath, lib.get(`DB`).export())
}
}
return lib.get(`DB`)
}
async function createTable() {
const sql = `create table if not exists comments (
id integer primary key not null,
content text not null,
created integer not null
);`
const res = lib.get(`DB`).exec(sql)
console.log(res)
}
条件 | ルート |
---|---|
DBファイル既存 | if |
DBファイルなし | else |
アプリ起動時、DBファイルがなければテーブルを作成し、DBファイルを作成する。
分岐のところの実装が似たようなコードになっててダサい。けど、まあいいか。