データベースど素人です。
普段は、Vue.jsのフレームワークのNuxt.Jsを使用して開発を行っているのですが、
DataBaseの事について知りたいと思い、下記のサイトを参考にデータベースの構築を行いました。
参考サイト
今回のディレクトリ構成ですが、下記です。
direcotry
1backend-database-database.sqlite3 2 -nodemodules 3 index.js 4 package-lock.json 5 package.json
流れとしては、
node.jsを使用し、express.jsを入れて、ポート番号5000のローカルサーバーが立ち上がることを確認しました。
データベースにはid,name,email,passwordが入るものを作成しました。
TablePlusをインストールしてdatabaseファイルと接続させ、USERSファイルができていることを確認しました。
その中に、適当な値を入れて、保存されていることが確認したいと思い、
下記のindex.jsのコードをVSCodeのターミナルより"npx nodemon index.js"コマンドを実行しました。
index.jsの中で、データベースを操作するようなコードを書いています。
index
1const express = require('express') 2const app = express() 3const port = 5000 4 5const sqlite3 = require('sqlite3').verbose(); 6 7const db = new sqlite3.Database('./database/database.sqlite3', (err) => { 8 if (err) { 9 return console.error(err.message); 10 } 11 console.log('Connected to the SQlite database.'); 12}); 13 14app.get('/', (request, response) => response.send('Hello World!!')) 15 16app.listen(port, () => console.log(`Example app listening on port ${port}!`)) 17let sql = `CREATE TABLE USERS( 18 id INTEGER PRIMARY KEY AUTOINCREMENT, 19 name TEXT NOT NULL UNIQUE, 20 email TEXT NOT NULL UNIQUE, 21 password TEXT NOT NULL 22 )` 23 24db.run(sql,(err) => { 25 if(err) { 26 return console.error(err.message); 27 } 28 console.log('table created'); 29 } 30 ) 31 32const bcrypt = require('bcrypt') 33const saltRounds = 10 34const insert = 'INSERT INTO USERS (name, email, password) VALUES (?,?,?)' 35 36bcrypt.hash("password", saltRounds, (err, hash) => { 37 db.run(insert, ["johndoe","john@example.com",hash]) 38})
しかし、下記のようなエラーが起こりました。
当然、databaseの中には何も入っておりません。
error
1[nodemon] app crashed - waiting for file changes before starting...
ちなみにpackage.jsonのdependeciesにおいては下記のような
ライブラリを入れています。
package
1"dependencies": { 2 "bcrypt": "^5.0.0", 3 "express": "^4.17.1", 4 "nodemon": "^2.0.6", 5 "sqlite3": "^5.0.0" 6 }
色々調べてはいるものの、データベースど素人のため、
中々理解できず、非常に困っております。
どなたかご教示いただけませんでしょうか?
よろしくお願いいたします。
あなたの回答
tips
プレビュー