質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

Q&A

0回答

552閲覧

express.js、TabePlusを使用して、usernameやidなどが入ったデータベースを作成したい。

takochan1192

総合スコア100

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

0グッド

0クリップ

投稿2020/12/05 14:13

データベースど素人です。
普段は、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 }

色々調べてはいるものの、データベースど素人のため、
中々理解できず、非常に困っております。
どなたかご教示いただけませんでしょうか?
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問