· 6 years ago · Jun 23, 2019, 01:44 PM
1at ProjectRepository.createTable (/home/alexa/abc/project_repository:13:21)
2at main (/home/alexa/abc/main.js:14:15)
3
4const sqlite3 = require('sqlite3')
5class AppDAO {
6 constructor(dbFilePath) {
7 this.dao = new sqlite3.Database(dbFilePath, (err) => {
8 if (err) {
9 console.log('Could not connect to database', err)
10 } else {
11 console.log('Connected to database')
12 }
13 })
14 }
15}
16
17module.exports = AppDAO
18
19class ProjectRepository {
20 constructor(dao) {
21 this.dao = dao;
22 }
23
24 createTable() {
25 const sql = `
26 CREATE TABLE IF NOT EXISTS projects (
27 id INTEGER PRIMARY KEY AUTOINCREMENT,
28 name TEXT)`;
29 return this.dao.run(sql);
30 }
31
32 create(name) {
33 return this.dao.run(
34 'INSERT INTO projects (name) VALUES (?)',
35 [name]);
36 }
37}
38
39module.exports = ProjectRepository;
40
41const AppDAO = require('./dao');
42const ProjectRepository = require('./project_repository');
43
44
45// eslint-disable-next-line require-jsdoc
46function main() {
47 const dao = new AppDAO('./database.sqlite3');
48 const blogProjectData = {name: 'Write Node.js - SQLite Tutorial'};
49 const projectRepo = new ProjectRepository(dao);
50
51
52 projectRepo.createTable()
53 .then(() => projectRepo.createTable())
54 .then(() => projectRepo.create(blogProjectData.name));
55}
56
57main();