-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
111 lines (95 loc) · 2.75 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
const express = require('express');
const expressStatic = require('express-static');
const bodyParser = require('body-parser');
const cookieParser = require('cookie-parser');
const cookieSession = require('cookie-session');
const multer = require('multer');
const consolidate = require('consolidate');
const mysql = require('mysql');
const tools = require('./libs/comment');
// express实例
const server = express();
// mysql 连接池
const db = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'jinxin2828',
database: 'blog'
});
// 防session劫持keys数组
const keys = [];
for (let i = 0; i < 100000; i++) {
keys.push('key_' + Math.random());
}
// 引擎配置
server.set('view engine', 'html');
server.set('views', __dirname + '/view');
server.engine('html', consolidate.ejs);
// post解析
server.use(bodyParser.urlencoded({ extended: false }));
server.use(multer({ dest: __dirname + '/dest' }).any());
// cookie session
server.use(cookieParser('dwhdwidhwidqizn'));
server.use(cookieSession({
name: 'sess',
keys,
maxAge: 20 * 60 * 1000
}));
// 用户请求
// 1.banner
server.get('/', (req, res, next) => {
let insert = 'SELECT * FROM `banner_table`'
db.query(insert, (err, data) => {
if (err) {
res.status(500).send('database error' + err).end();
} else {
res.banner = data;
next();
}
});
});
// 2.article
server.get('/', (req, res, next) => {
let insert = 'SELECT `title`,`sub_title`,`ID`,`banner_img` FROM `article_table`'
db.query(insert, (err, data) => {
if (err) {
res.status(500).send('database error' + err).end();
} else {
res.article = data;
next();
}
});
});
// 3.渲染
server.get('/', (req, res) => {
res.render('index.ejs', {
banner: res.banner,
article: res.article
});
});
// 4.详情页跳转
server.get('/article', (req, res) => {
if (req.query.id) {
db.query(`SELECT * FROM article_table WHERE ID=${req.query.id}`, (err, data) => {
if (err) {
res.status(500).send('database error').end();
} else {
if (data.length === 0) {
res.status(404).send('文章找不到').end();
} else {
let article_data = data[0];
article_data.content = tools.formatContent(article_data.content);
res.render('page.ejs', {
article_data
});
}
}
});
} else {
res.status(404).send('文章找不到').end();
}
});
// 静态文件
server.use(expressStatic(__dirname + '/www'));
server.listen(9000);
console.log('localhost:9000');