· 6 years ago · Mar 27, 2019, 08:06 PM
1var mysql = require('mysql');
2var config = require('../config/default.js')
3
4var pool = mysql.createPool({
5 host : config.database.HOST,
6 user : config.database.USERNAME,
7 password : config.database.PASSWORD,
8 database : config.database.DATABASE,
9 port : config.database.PORT
10});
11
12let query = ( sql, values ) => {
13
14 // è¿”å›žä¸€å€‹ç•°æ¥æ“作(內嫿“作的事件處ç†)
15 return new Promise(( resolve, reject ) => {
16 // 使用連接
17 pool.getConnection( (err, connection) => {
18 if (err) {
19 reject( err )
20 } else {
21 // 使用連接執行查詢
22 connection.query(sql, values, ( err, rows) => {
23 if ( err ) {
24 reject( err )
25 } else {
26 resolve( rows )
27 }
28 // 連接ä¸å†ä½¿ç”¨ï¼Œè¿”回到連接æ±
29 connection.release()
30 })
31 }
32 })
33 })
34
35}
36
37// 建立用戶資料表
38let users =
39 `create table if not exists users(
40 id INT NOT NULL AUTO_INCREMENT,
41 name VARCHAR(100) NOT NULL COMMENT '用户å',
42 pass VARCHAR(100) NOT NULL COMMENT '密碼',
43 avator VARCHAR(100) NOT NULL COMMENT 'é åƒ',
44 moment VARCHAR(100) NOT NULL COMMENT '注冊時間',
45 PRIMARY KEY ( id )
46 );`
47
48 // å»ºç«‹æ–‡ç« è³‡æ–™è¡¨
49let posts =
50 `create table if not exists posts(
51 id INT NOT NULL AUTO_INCREMENT,
52 name VARCHAR(100) NOT NULL COMMENT 'æ–‡ç« ä½œè€…',
53 title TEXT(0) NOT NULL COMMENT '評論題目',
54 content TEXT(0) NOT NULL COMMENT '評論内容',
55 md TEXT(0) NOT NULL COMMENT 'markdown',
56 uid VARCHAR(40) NOT NULL COMMENT '用户id',
57 moment VARCHAR(100) NOT NULL COMMENT '發表時間',
58 comments VARCHAR(200) NOT NULL DEFAULT '0' COMMENT 'æ–‡ç« è©•è«–æ•¸',
59 pv VARCHAR(40) NOT NULL DEFAULT '0' COMMENT 'ç€è¦½é‡',
60 avator VARCHAR(100) NOT NULL COMMENT '用户é åƒ',
61 PRIMARY KEY(id)
62 );`
63
64let comment =
65 `create table if not exists comment(
66 id INT NOT NULL AUTO_INCREMENT,
67 name VARCHAR(100) NOT NULL COMMENT '用户å稱',
68 content TEXT(0) NOT NULL COMMENT '評論内容',
69 moment VARCHAR(40) NOT NULL COMMENT '評論時間',
70 postid VARCHAR(40) NOT NULL COMMENT 'æ–‡ç« id',
71 avator VARCHAR(100) NOT NULL COMMENT '用户é åƒ',
72 PRIMARY KEY(id)
73 );`
74
75let createTable = ( sql ) => {
76 return query( sql, [] )
77}
78
79// 建表
80createTable(users)
81createTable(posts)
82createTable(comment)
83
84// 注册用户
85exports.insertData = ( value ) => {
86 let _sql = "insert into users set name=?,pass=?,avator=?,moment=?;"
87 return query( _sql, value )
88}
89// åˆ é™¤ç”¨æˆ·
90exports.deleteUserData = ( name ) => {
91 let _sql = `delete from users where name="${name}";`
92 return query( _sql )
93}
94// 查找用户
95exports.findUserData = ( name ) => {
96 let _sql = `select * from users where name="${name}";`
97 return query( _sql )
98}
99// 發表文ç«
100exports.insertPost = ( value ) => {
101 let _sql = "insert into posts set name=?,title=?,content=?,md=?,uid=?,moment=?,avator=?;"
102 return query( _sql, value )
103}
104// å¢žåŠ æ–‡ç« è©•è«–æ•¸
105exports.addPostCommentCount = ( value ) => {
106 let _sql = "update posts set comments = comments + 1 where id=?"
107 return query( _sql, value )
108}
109// æ¸›å°‘æ–‡ç« è©•è«–æ•¸
110exports.reducePostCommentCount = ( value ) => {
111 let _sql = "update posts set comments = comments - 1 where id=?"
112 return query( _sql, value )
113}
114
115// æ›´æ–°ç€è¦½æ•¸
116exports.updatePostPv = ( value ) => {
117 let _sql = "update posts set pv= pv + 1 where id=?"
118 return query( _sql, value )
119}
120
121// 發表評論
122exports.insertComment = ( value ) => {
123 let _sql = "insert into comment set name=?,content=?,moment=?,postid=?,avator=?;"
124 return query( _sql, value )
125}
126// 通éŽåå—æŸ¥æ‰¾ç”¨æˆ·
127exports.findDataByName = ( name ) => {
128 let _sql = `select * from users where name="${name}";`
129 return query( _sql)
130}
131// 通éŽåå—æŸ¥æ‰¾ç”¨æˆ·æ•¸é‡åˆ¤æ–·æ˜¯å¦å·²ç¶“å˜åœ¨
132exports.findDataCountByName = ( name ) => {
133 let _sql = `select count(*) as count from users where name="${name}";`
134 return query( _sql)
135}
136// é€šéŽæ–‡ç« çš„åå—æŸ¥æ‰¾ç”¨æˆ·
137exports.findDataByUser = ( name ) => {
138 let _sql = `select * from posts where name="${name}";`
139 return query( _sql)
140}
141// é€šéŽæ–‡ç« id查找
142exports.findDataById = ( id ) => {
143 let _sql = `select * from posts where id="${id}";`
144 return query( _sql)
145}
146// é€šéŽæ–‡ç« id查找
147exports.findCommentById = ( id ) => {
148 let _sql = `select * from comment where postid="${id}";`
149 return query( _sql)
150}
151
152// é€šéŽæ–‡ç« id查找評論數
153exports.findCommentCountById = ( id ) => {
154 let _sql = `select count(*) as count from comment where postid="${id}";`
155 return query( _sql)
156}
157
158// 通éŽè©•è«–id查找
159exports.findComment = ( id ) => {
160 let _sql = `select * from comment where id="${id}";`
161 return query( _sql)
162}
163// 查詢所有文ç«
164exports.findAllPost = () => {
165 let _sql = `select * from posts;`
166 return query( _sql)
167}
168// æŸ¥è©¢æ‰€æœ‰æ–‡ç« æ•¸é‡
169exports.findAllPostCount = () => {
170 let _sql = `select count(*) as count from posts;`
171 return query( _sql)
172}
173// æŸ¥è©¢åˆ†é æ–‡ç«
174exports.findPostByPage = ( page ) => {
175 let _sql = ` select * from posts limit ${(page-1)*10},10;`
176 return query( _sql)
177}
178// æŸ¥è©¢æ‰€æœ‰å€‹äººç”¨æˆ·æ–‡ç« æ•¸é‡
179exports.findPostCountByName = (name) => {
180 let _sql = `select count(*) as count from posts where name="${name}";`
181 return query( _sql)
182}
183// æŸ¥è©¢ä¸ªäººåˆ†é æ–‡ç«
184exports.findPostByUserPage = (name,page) => {
185 let _sql = ` select * from posts where name="${name}" order by id desc limit ${(page-1)*10},10 ;`
186 return query( _sql)
187}
188// 更新修改文ç«
189exports.updatePost = (values) => {
190 let _sql = `update posts set title=?,content=?,md=? where id=?`
191 return query(_sql,values)
192}
193// 刪除文ç«
194exports.deletePost = (id) => {
195 let _sql = `delete from posts where id = ${id}`
196 return query(_sql)
197}
198// 刪除評論
199exports.deleteComment = (id) => {
200 let _sql = `delete from comment where id=${id}`
201 return query(_sql)
202}
203// 刪除所有評論
204exports.deleteAllPostComment = (id) => {
205 let _sql = `delete from comment where postid=${id}`
206 return query(_sql)
207}
208
209// 滾動無é™åŠ è¼‰æ•¸æ“š
210exports.findPageById = (page) => {
211 let _sql = `select * from posts limit ${(page-1)*5},5;`
212 return query(_sql)
213}
214// 評論分é
215exports.findCommentByPage = (page,postId) => {
216 let _sql = `select * from comment where postid=${postId} order by id desc limit ${(page-1)*10},10;`
217 return query(_sql)
218}