昨天有提了一些前置作業~
還沒看過的可以先去前一篇歐
首先,新增一個資料夾取名為 config
並在config資料夾下建立一個 db.js 檔案
再來按照下方所示
因為昨天我們使用db4free作為我們的database host
另外要記得不要洩漏任何有關你的db的敏感資訊!
const mysql = require('mysql');
const db = mysql.createPool({
host: "db4free.net",
user: "你的DB user name~~~~",
password: "你的DB密碼~~~~~",
database: "你的DB名字~~~~",
connectTimeout: 60000,
//可以自行設定timeout秒數,預設是10秒 也許會不夠
})
//optional
db.getConnection(()=>{
console.log('Connect to my db successfully!!')
})
module.exports = db;
然後再去 index.js 寫入⬇️
const mydb = require('./config/db');
儲存檔案~~~!!
DB設定完後
接著我們來新增router吧~~🥳
首先在我們昨天新增的 routes 檔案夾下,新增一個 router.js檔案
我們先新增一個get
const express = require('express')
const router = require('express').Router();
router.get('/', (req,res,next)=>{
res.send('Gummy say hi to u')
})
module.exports = router;
然後在index.js ⬇️
const rout = require("./routes/router");
app.use(rout);
儲存~~
接著可以去localhost看看router有沒有接上!
我們準備來建立第一個model啦~
首先在 models 資料夾下建立一個為 User.js 的檔案
// communcate to user db, determaine a database structured
const db = require("../config/db");
class UserModel {
static async getusers(){
return new Promise((resolve, reject) => {
//my table name is 'users'
db.query("select * from users", [], (error, result) => {
if(!error){
resolve(result);
}else{
reject(error);
}
})
})
}
}
module.exports = UserModel; //記得export喔~~
在query下你要對資料庫執行的指令~
接著在controllers資料夾下,建立UserController.js檔案
我們先建立get all users 的controllers
const UserModel = require("../models/User")
const user = require("../models/User")
class UserController {
static async getallusers(req, res) {
try {
console.log("Successfully get the users db!")
var results = await UserModel.getusers();
if (results) {
res.send(results);
} else {
res.send("no");
}
} catch (e) {
//prints only the message, you knew there is an error already
console.error("there is an error " + e);
//it prints the whole stack trace,console.log(e)
}
}
}
module.exports = UserController;
然後再回去router新增一個/allusers router
router.get("/allusers", UserController.getallusers);
SAVE!
之後到瀏覽器輸入port加上/allusers
出現DB裡的資料了~~