Skip to content

Commit c5fb47a

Browse files
committed
Create programs using async/await
Promise の項目で作った関数を async, await の形式で使用するプログラムを作成
1 parent 0a558c9 commit c5fb47a

File tree

2 files changed

+90
-0
lines changed

2 files changed

+90
-0
lines changed
+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#!/usr/bin/env node
2+
3+
import sqlite3 from "sqlite3";
4+
import { runQueryAsync, allQueryAsync } from "./sqlite_utils.js";
5+
6+
sqlite3.verbose();
7+
const db = new sqlite3.Database(":memory:");
8+
9+
const createTableQuery = `
10+
CREATE TABLE books (
11+
id INTEGER PRIMARY KEY AUTOINCREMENT,
12+
title TEXT NOT NULL UNIQUE
13+
)
14+
`;
15+
const insertTitleQuery = `INSERT INTO books (title) VALUES (?)`;
16+
const selectAllQuery = `SELECT * FROM movies`;
17+
const deleteTableQuery = `DROP TABLE books`;
18+
19+
const titles = ["I Am a Cat", "I Am a Cat", "SANSHIRO"];
20+
21+
async function main() {
22+
await runQueryAsync(db, createTableQuery);
23+
console.log("Table created");
24+
25+
for (const title of titles) {
26+
try {
27+
const result = await runQueryAsync(db, insertTitleQuery, [title]);
28+
console.log(`Record inserted successfully with ID: ${result.lastID}`);
29+
} catch (err) {
30+
console.error(`Error occurred while inserting record: ${err.message}`);
31+
}
32+
}
33+
34+
try {
35+
const rows = await allQueryAsync(db, selectAllQuery);
36+
console.log("All records fetched successfully");
37+
for (const row of rows) {
38+
console.log(`id:${row.id}, title:${row.title}`);
39+
}
40+
} catch (err) {
41+
console.error(`Error occurred while fetching records: ${err.message}`);
42+
}
43+
44+
await runQueryAsync(db, deleteTableQuery);
45+
console.log("Table deleted");
46+
db.close();
47+
}
48+
49+
main();
+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#!/usr/bin/env node
2+
3+
import sqlite3 from "sqlite3";
4+
import { runQueryAsync, allQueryAsync } from "./sqlite_utils.js";
5+
6+
sqlite3.verbose();
7+
const db = new sqlite3.Database(":memory:");
8+
9+
const createTableQuery = `
10+
CREATE TABLE books (
11+
id INTEGER PRIMARY KEY AUTOINCREMENT,
12+
title TEXT NOT NULL UNIQUE
13+
)
14+
`;
15+
const insertTitleQuery = `INSERT INTO books (title) VALUES (?)`;
16+
const selectAllQuery = `SELECT * FROM books`;
17+
const deleteTableQuery = `DROP TABLE books`;
18+
19+
const titles = ["I Am a Cat", "KOKORO", "SANSHIRO"];
20+
21+
async function main() {
22+
await runQueryAsync(db, createTableQuery);
23+
console.log("Table created");
24+
25+
for (const title of titles) {
26+
const result = await runQueryAsync(db, insertTitleQuery, [title]);
27+
console.log(`Record inserted successfully with ID: ${result.lastID}`);
28+
}
29+
30+
const rows = await allQueryAsync(db, selectAllQuery);
31+
console.log("All records fetched successfully");
32+
for (const row of rows) {
33+
console.log(`id:${row.id}, title:${row.title}`);
34+
}
35+
36+
await runQueryAsync(db, deleteTableQuery);
37+
console.log("Table deleted");
38+
db.close();
39+
}
40+
41+
main();

0 commit comments

Comments
 (0)