Node寫部落格--後臺管理功能及介面的搭建
1.首先將管理員的進入管理的介面做好,在routers/admin.js中加入
var express = require('express');
var router =express.Router();//Express.js 4.0 有加入一個新的 Router 功能,它就像一個迷你的應用程式,可以讓應用程式內部的路由撰寫更方便、更有彈性。新增非路由中間鍵
//監聽以/admin開頭的路由,不需要再寫/admin/user了,
// router.get('/user',function(req,res,next) {
// res.send('User');
// })
//每一個node.js執行檔案,都自動建立一個module物件,同時,module物件會建立一個叫exports的屬性,初始化的值是 {}
//module.exports屬性可以被賦予一個新的值(例如函式或物件),賦值給 `exports` 不會修改模組,必須使用 `module.exports`
// nodejs模組中的exports物件,你可以用它建立你的模組。例如:(假設這是rocker.js檔案)
//
// exports.name = function() {
// console.log('My name is Lemmy Kilmister');
// };
//
// 在另一個檔案中你這樣引用
//
// var rocker = require('./rocker.js');
// rocker.name(); // 'My name is Lemmy Kilmister'
// 其實,Module.exports才是真正的介面,exports只不過是它的一個輔助工具。 最終返回給呼叫的是Module.exports而不是exports。
router.use(function (req,res,next) {
if(!req.userInfo.isAdmin){
//如果當前使用者是非管理員
res.send('對不起,只有管理員才可以進入後臺管理');
return;
}
next();
});
router.get('/',function (req,res,next) {
res.render('admin/index',{
userInfo:userInfo
});
});
module.exports = router;
2.在view/admin中新增一個index.html,該頁面可以參考boostrap中的導航條
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>後臺管理</title>
<link rel="stylesheet" href="/public/css/bootstrap.min.css" type="text/css"/>
<link rel="stylesheet" href="/public/css/bootstrap-theme.min.css" type="text/css"/>
<script src="/public/js/bootstrap.min.js"></script>
<script src="/public/js/jquery-1.12.4.min.js"></script>
</head>
<body>
<!--頂部導航-->
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="/admin">後臺管理</a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="#">使用者管理</a></li>
<!--<li class="dropdown">-->
<!--<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>-->
<!--<ul class="dropdown-menu">-->
<!--<li><a href="#">Action</a></li>-->
<!--<li><a href="#">Another action</a></li>-->
<!--<li><a href="#">Something else here</a></li>-->
<!--<li role="separator" class="divider"></li>-->
<!--<li><a href="#">Separated link</a></li>-->
<!--<li role="separator" class="divider"></li>-->
<!--<li><a href="#">One more separated link</a></li>-->
<!--</ul>-->
<!--</li>-->
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{{userInfo.username}} <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">退出</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<div class="container-fluid">
<div class="jumbotron">
<h1>Hello, {{userInfo.username}}!</h1>
<p>歡迎進入我的部落格後臺管理!</p>
<p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more</a></p>
</div>
</div>
</body>
</html>
3.導航欄在什麼情況下都是一致的,所以我們可以運用模板的一個功能實現它的複用
我們在view/admin資料夾下新建一個layout.html模板,將剛剛在Index.html中的程式碼拷貝過來,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>後臺管理</title>
<link rel="stylesheet" href="/public/css/bootstrap.min.css" type="text/css"/>
<link rel="stylesheet" href="/public/css/bootstrap-theme.min.css" type="text/css"/>
<script src="/public/js/bootstrap.min.js"></script>
<script src="/public/js/jquery-1.12.4.min.js"></script>
</head>
<body>
<!--頂部導航-->
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="/admin">後臺管理</a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="#">使用者管理</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{{userInfo.username}} <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">退出</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<div class="container-fluid">
<!--加入模組-->
{% block main %}{% endblock%}
</div>
</body>
</html>
在index.html加入以下一段程式碼,呼叫layout.html中的程式碼
{%extends 'layout.html' %}
{% block main%}
<div class="jumbotron">
<h1>Hello, {{userInfo.username}}!</h1>
<p>歡迎進入我的部落格後臺管理!</p>
<p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more</a></p>
</div>
{% endblock %}
相關文章
- node+koa2+mysql搭建部落格後臺MySql
- 基於Vue + Antd 搭建自己的部落格後臺管理系統Vue
- 使用 Filamentphp 重構部落格管理後臺PHP
- Hexo-Node-Git搭建部落格HexoGit
- 使用React + Antd 搭建部落格後臺系統React
- Laravel 融合 Markdown 做部落格書寫後臺案例Laravel
- nuxt+node搭建個人部落格miniUX
- ThinkPHP5.0 部落格後臺管理(最新版)PHP
- Django搭建個人部落格:編寫部落格文章的Model模型Django模型
- 部落格園OpenApi管理平臺API
- vue.js+node.js的部落格管理系統Vue.jsNode.js
- vue + element +tp5 個人部落格後臺管理小記Vue
- 部落格美化&typora編寫部落格攻略(部落格園版)
- 寫部落格目的
- Markdown 寫部落格
- 在掘金寫寫部落格
- Hexo 搭建部落格Hexo
- 搭建Hexo部落格相簿Hexo
- 搭建個人部落格
- 部落格搭建過程
- 如何搭建部落格
- koa2+vue+axios搭建一個部落格臺管理系統之session踩坑VueiOSSession
- 免費 ,免費開源 ,ThinkPHP 部落格後臺管理系統5.0開發的個人部落格 程式開源共享.個人部落格系統,老張部落格-Boot.ZPHPboot
- 寫部落格的思考
- WordPress部落格前後臺一片空白
- Hexo部落格多臺電腦裝置同步管理Hexo
- 部落格開張及本部落格內容簡介
- GitHub Pages 搭建部落格Github
- hexo 部落格搭建筆記Hexo筆記
- 個人部落格搭建( wordpress )
- 使用Docker搭建Chirpy部落格Docker
- 部落格搭建-圖床篇圖床
- Hexo部落格搭建記錄Hexo
- 2021年Wordpress部落格搭建
- react搭建後臺管理(react初窺)React
- 部落格搭建詳解(三)-Node.js+自動化部署+郵件提醒Node.js
- 【單頁面部落格從前端到後端】環境搭建前端後端
- egg重寫部落格介面