C:\> mkdir loginApp
C:\> cd loginApp
C:\loginApp> npm init
สั่ง init เป็นการเริ่มต้นด้วยการสร้างแฟ้ม package.json เมื่อมีคำถาม ครั้งนี้ให้กด enter ไปทุกคำถาม
C:\loginApp> yarn add bcryptjs (2.4.3 Hashes and compares user passwords)
C:\loginApp> yarn add express (4.17.1 Minimal and flexible framework to be used)
C:\loginApp> yarn add jsonwebtoken (8.5.1 Generates and verifies request tokens)
C:\loginApp> yarn add mysql2 (2.2.5 Allows you to interact with the MySQL database)
C:\loginApp> yarn add nodemon (2.0.7 Automatically restarts the application when file changes in the directory are detected)
C:\loginApp> yarn add sequelize (6.6.2 ORM to be used)
ติดตั้ง package เพื่อ 6 ตัว และพบรายการที่ add ในแฟ้ม package.json
C:\loginApp> npm install --save
ติดตั้ง package เพื่อ 6 ตัว และพบรายการที่ add ในแฟ้ม package.json
copy folder [controllers, models, routes, utils] ไปไว้ใน loginApp
download แฟ้มทั้งหมดจาก https://github.com/agustinfece/login
แล้วเลือกคัดลอก 4 folder ไปวางใน project
และคัดลอก app.js ไปวางใน project อีกแฟ้มหนึ่ง
edit - package.json
"type": "module", ก่อน scripts block
แล้วเพิ่ม ,"start": "nodemon app.js" ใน scripts block
เช่น
{
"name": "loginapp",
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1","start": "nodemon app.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"bcryptjs": "^2.4.3",
"express": "^4.17.1",
"jsonwebtoken": "^8.5.1",
"mysql2": "^2.3.0",
"nodemon": "^2.0.12",
"sequelize": "^6.6.5"
}
}
C:\xampp\mysql\bin> mysql -u root -p
ถ้าในเครื่องมี mysql อยู่แล้ว ก็เข้าไปสร้างฐานข้อมูลชื่อ loginDB;
create database loginDB;
ถ้าไม่สร้างจะพบ sqlMessage: "Unknown database 'logindb'", เมื่อสั่ง npm start
จากนั้นเข้าไปเปลี่ยน user และ password ใน /utils/database.js เช่น เปลี่ยน YOUR_PASSWORD
C:\loginApp> npm start
Executing (default): CREATE TABLE IF NOT EXISTS `users` (`id` INTEGER NOT NULL a
uto_increment , `email` VARCHAR(255) NOT NULL, `name` VARCHAR(255), `password` V
ARCHAR(255) NOT NULL, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NU
LL, PRIMARY KEY (`id`)) ENGINE=InnoDB;
Executing (default): SHOW INDEX FROM `users`