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();
        })
相关文章
相关标签/搜索