前端小项目:图书管理系统(三)express router的编写(1)
介绍
这是一个用node写成的一个项目
编写相关的路由
1.在相关的文件夹Library里面创建一个文件夹router
2.在router文件家里面创建router.js文件
3.我这个是比较简易的图书管理系统,设计的思路如下
1.进入主页面时会检查有没有登录,如果登录了就留在主页面,如果没有登录就会转跳到登录页面login.html
2.该主页面会根据数据库查询的数据渲染图书的数据
3.该主页面会根据前端页面的操作,对数据库进行增删改查
4.第一步:进入主页面时会检查有没有登录,如果登录了就留在主页面,如果没有登录就会转跳到登录页面login.html
在router.js写下如下代码
const express = require('express');\\引入express
const cookie = require('cookie');\\引入cookie,记录用户数据
const router = express.Router();\\创建路由
router.get('/', (req, res)=> {
var cookies = cookie.parse(req.headers.cookie || '');
if(cookies.name){\\判断cookie有没有记录登录的名字
db.query('select * from library',[],(results, fields)=>{
res.render('index.art', {
user:results,
ed:req.query
});
},res)//对mysql进行数据查询,并渲染到前端页面
}else{
res.redirect('/login');转跳到登录页面
}
});
router.post('/', (req, res) => {
var params = req.body
if(params&¶ms.username){
res.setHeader('Set-Cookie', cookie.serialize('name', String(params.username), {
httpOnly: true,
maxAge: 60 * 60 * 24 * 2 // 1 week
}));
res.redirect('/');
}else{
res.redirect('/error');
}}); \\post得到登录的用户名,并记录在cookie里面
router.get('/login', (req, res) => {
res.render('./login/login')
});
// res.send('Hello')
module.exports = router;
5.第二步:对login.html进行渲染
在文件夹Library里面创建一个文件夹views
里面新建渲染的主页面,index.art,文件夹public,里面放置静态资源,里面再创建一个404错误文件夹,以及login文件夹
在login文件里面创建一个login.art,在login.art,里面写
<!DOCTYPE html>
<html>
<head>
<title>login</title>
</head>
<body>
<form action="/" method="post">
username:<input type="text" required="required" name="username"></br>
password:<input type="password" required="required" name="password"></br>
<input type="submit" value="submit">
</form>
</body>
</html>
然后在Library里面有一个创建的index.js
在index.js里面写下
const express = require('express')
var path = require('path');\\引用path库
const app = express()\\构造express类
var rounter = require('./rounter/rounter.js')\\引用自己写的文件
app.use(express.static(__dirname + '/views/public'));\\设置静态资源
app.set('views', path.join(__dirname, '/views'));\\设置渲染视图资源,会自动渲染index.art主页面
app.set('view engine', 'html');\\设置渲染视图引擎
app.set('view engine', 'art'); \\设置渲染视图引擎
app.use('/', rounter)
app.listen(3000)
6.测试使用