1、package.json:
{ "scripts": { "start": "node app.js" }, "devDependencies": { "body-parser": "^1.17.1", "ejs": "^2.5.6", "express": "^4.15.2", "express-session": "^1.15.1", "mysql": "^2.13.0", "session": "^0.1.0" }}
2、db.js:
var mysql = require('mysql');//导入mysql模块var db=mysql.createConnection({ //连接mysql数据库 host:'localhost', user:'root', password:'123456', database:'test', //数据库名字 port:3306});db.connect((err)=>{ if(err){ console.log('connect fail') }else{ console.log('connect suc') }});module.exports=db;
3、app.js:
var express = require('express');var app = express();var gets = require('./modle.js');var bodyParser = require('body-parser');var session = require('express-session')app.use(session({ secret: 'shixinke', resave: true, saveUninitialized: false, cookie: { secure: false }})); //这部分代码可以让你使用sessionapp.engine('.html', require('ejs').__express);app.set('view engine', 'html');app.set('views', __dirname + '/views'); //模板引擎启用app.use(bodyParser.json());app.use(bodyParser.urlencoded()); //这部分可以让你使用接收post数据app.get('/', function(req, res, next) { //路由,然后调用相应的modle.js里的方法 gets.showArticleHome(req, res, next)})app.get('/login', function(req, res, next) { res.render('login');})app.get('/outlogin', function(req, res, next) { req.session.sign = false; res.redirect('/');})app.post('/loginif', function(req, res, next) { gets.loginif(req, res, next);})app.set('trust proxy', 1) // trust first proxyapp.get('/list', function(req, res, next) { if (req.session.sign) { gets.showArticle(req, res, next) } else { res.send('you don,t have login') }})app.get('/article/:id', function(req, res, next) { gets.showArticleInfo(req, res, next)})app.get('/write', function(req, res, next) { gets.subForm(req, res, next)})app.post('/subform', function(req, res, next) { gets.saveArticle(req, res, next);})app.get('/delete/:id', function(req, res, next) { gets.deleteArticle(req, res, next);})app.get('/edit/:id', function(req, res, next) { if (req.session.sign) { gets.editArticle(req, res, next); }else{ res.send('you don,t have login in') }})app.post('/update', function(req, res, next) { gets.updateArticle(req, res, next);})app.listen(8000)
4、modle.js:
var db = require('./db.js');var gets = {};gets.loginif=(req,res,next)=>{ var userInfo=req.body.userinfo; console.log(userInfo,'sdflksjfd') var qry="select count(*) as num from admin where user='"+userInfo.user+"' and password='"+userInfo.psd+"'"; db.query(qry,function(err,result){ if(err){ console.log('err'); return; } if(result[0].num>=1){ req.session.sign = true; } res.send(result) })}gets.findAll = (req, res, next) => { var qry = "select * from user"; var qry2 = "select * from user_next"; db.query(qry, function(err, result) { if (err) { console.log('err'); return; } db.query(qry2, function(err, result2) { res.render('home', { data: result, data2: result2, title: 'home' }); }) });}gets.subForm = (req, res, next) => { res.render('write', {})}gets.showArticle = (req, res, next) => { db.query('select * from article', function(err, result) { if (err) { console.log('not get article') return; } res.render('list', { data: result }) })}gets.showArticleHome = (req, res, next) => { db.query('select * from article', function(err, result) { if (err) { console.log('not get article') return; } res.render('home', { data: result }) })}gets.showArticleInfo = (req, res, next) => { var id = req.params.id; db.query("select * from article where id=" + id + "", function(err, result) { if (err) { console.log('not get article') return; } res.render('info', { data: result }) })}gets.saveArticle = (req, res, next) => { var formdata = req.body.formdata; console.log(typeof(formdata.tit)); var str = formdata.con; str = str.replace(/\"/g, " "); str = str.replace(/"/g, "'"); str = str.replace(/&/g, ""); str = str.replace(/lt;/g, "<"); str = str.replace(/gt;/g, ">"); str = str.replace(/\&/g, ""); str = str.replace(/\n/g, ""); var qry = "insert into article (title,content) values ('" + formdata.tit + "', '" + str + "')"; db.query(qry, function(err, result) { if (err) { console.log('err') return; } res.send({ state: true }) })}gets.updateArticle = (req, res, next) => { var formdata = req.body.formdata; var str = formdata.con; str = str.replace(/\"/g, " "); str = str.replace(/"/g, "'"); str = str.replace(/&/g, ""); str = str.replace(/lt;/g, "<"); str = str.replace(/gt;/g, ">"); str = str.replace(/\&/g, ""); str = str.replace(/\n/g, ""); var qry = "update article set title='"+formdata.tit+"',content='"+str+"' where id='"+req.body.id+"'"; db.query(qry, function(err, result) { if (err) { console.log('err') return; } res.send({ state: true }) })}gets.deleteArticle = (req, res, next) => { var delId=req.params.id; var qry="delete from article where id="+delId+""; db.query(qry, function(err, result) { if (err) { console.log('err') return; } res.redirect('/list') })}gets.editArticle = (req, res, next) => { var editId=req.params.id; console.log(editId,'dksfdksfj') var qry="select * from article where id="+editId+""; db.query(qry, function(err, result) { if (err) { console.log('err') return; } res.render('edit',{ data:result }) })}module.exports = gets;
5、home.html:
article <% data.forEach(function(item){%><%=item.title%> <%})%>
6、login.html:
login