推薦網址:html
https://www.cnblogs.com/Darren_code/p/node_express.htmlmysql
https://www.cnblogs.com/chyingp/p/express-multer-file-upload.html(文件上傳multer)git
項目github地址github
一、工程結構sql
二、路由控制 :Express封裝了http的不少方法數據庫
路由句柄(路由中間件):express
next('route')
npm
響應方法:json
res.render:渲染視圖模板
三、模板引擎(ejs)
app.engine()方法
以前先看看express應用的安裝命令:「express -e nodejs-product」,其中的 -e 和 -J 咱們一開始已經提到,表示ejs和jade模板。
若是想把模板後綴改爲「.html」時就會用到app.engine方法,來從新設置模板文件的擴展名,好比想用ejs模板引擎來處理「.html」後綴的文件:app.engine('.html', require('ejs').__express);
app.engine(ext, callback) 註冊模板引擎的 callback 用來處理ext擴展名的文件。
PS:__express不用去care,其實就是ejs模塊的一個公共屬性,表示要渲染的文件擴展名。
四、 文件上傳multer
const multer = require('multer'); var storage = multer.diskStorage({ destination: function (req, file, cb){ cb(null, './public/images') }, filename: function (req, file, cb){ cb(null, file.originalname) } }); var upload = multer({ storage: storage })
app.post('/upload', upload.array('field1', 5), function(req, res) { req.flash('success', '文件上傳成功!'); res.redirect('/upload'); });
五、Markdown的使用
post頁面,寫博客有時引用上傳的圖片
Markdown圖片使用:
![Alt text](/path/to/img.jpg "Optional title") ===> 例如: ![](/images/1.jpge)
六、文章的編輯與修改
conn.query時,SQL語句是拼接的,會報錯: Error: ER_BAD_FIELD_ERROR: Unknown column 'xxx' in 'where clause'
解決辦法:
(1)每一個string字段須要加""
(2)SQL語句格式以下,不須要每一個字段都加""
var moment = require('moment')
(3)頁面渲染調用格式爲:<%= moment(new Date(parseInt("要解析的值"))).format('YYYY-MM-DD HH:MM:SS') %>
九、博客詳情頁面手動刷新,文章閱讀量一直加,使用session記錄
十、文章標題搜索--模糊查詢(POSITION)
SELECT * FROM t_blog_post WHERE POSITION("' + keyWord + '" IN title)
十一、使用KindEditor
(1)http://www.kindsoft.net/ 下載最新的 KindEditor 壓縮包,解壓後將文件夾重命名爲 kindEditor 並放到 public 文件夾下。
(2)修改header.ejs
(3)i定義圖片上傳接口
https://blog.csdn.net/dexing07/article/details/53870580
https://blog.csdn.net/charlene0824/article/details/51234394
十二、項目存在問題:
(1)數據庫操做save、update方法應該封裝通用的
(2)數據庫用戶數據清空,瀏覽器本地session存有user,還能夠繼續保存(已解決)
(3)server端到數據庫的CRUD等等操做,,改進使用ORM框架 sequelize
(4)評論時,評論的用戶信息應該不可編輯(已解決)
(5)本身的評論不可操做
(6)頁面佈局樣式亟待設計哦
1三、項目啓動
(1)網上教程本地安裝mysql
(2)setting.js配置mysql數據庫鏈接
(3)建表sql爲t_blog_post.sql、t_blog_user.sql
(4)npm install 安裝項目依賴
(5)npm run start 啓動項目---localhost:3001,端口號可在package.json配置
1四、幾個頁面
---------------------
--------------------------
-----------------------
--------------------------------
---------------------------------------------