blog—博客

博客 15blog

數據字典---將要的數據定出來

  1. banner banner
  • id 主鍵
  • title 標題 varchar(32)
  • sub_title 副標題 varchar(16)
  • src 圖片 varchar(60)
  1. 文章 article
  • id 主鍵
  • author 做者 varchar(16)
  • avatar 頭像 varchar(64)
  • title 標題 varchar(32)
  • post_time 發佈時間 int
  • content 內容 text
  • like 贊 tinyint
  1. 用戶 user
  2. uid
  3. username 用戶名 varchar(32)
  4. password 密碼 char(32)
  5. avatar 頭像 varchar(64)

安裝相關模塊

    cnpm i express express-static cookie-parser cookie-session body-parser multer mysql ejs consolidate --save

mysql 連接池

        //建立一個mysql的連接池
        const db = mysql.createPool({
            host:'localhost',
            user:'root',
            password:'root',
            database:'jy1608_blog',
            port:8889
        })

將操做數據庫的操做封裝成 15blog/db.js,並使用promise

        const mysql = require('mysql');
        //建立一個mysql的連接池
        const db = mysql.createPool({
            host:'localhost',
            user:'root',
            password:'root',
            database:'jy1608_blog',
            port:8889
        })
        //查詢方法
        let query = function(sql){
            return new Promise((resolve,reject)=>{
                db.query(sql,(err,data)=>{
                    if(err){
                        reject(err);
                    }else{
                        resolve(data);
                    }
                });
            });
        }
        module.exports = {
            query:query
        }

使用 Promise.all() 首頁 banner數據和 文章列表數據獲取 15blog/server.js

        Promise.all([Db.query("SELECT * FROM `blog_banner`;"),Db.query("SELECT title,avatar,content FROM `blog_article`;")]).then((data)=>{
            let sendData = {
                banners:data[0],
                articles:data[1]
            }
            res.render('index.ejs',sendData);
        }).catch((err)=>{
            res.status(500).send('數據庫錯誤').end();
        })
相關文章
相關標籤/搜索