nodejs后台代码
const express = require('express');
const expressStatic = require('express-static');
const bodyParser = require('body-parser');
const consolidate = require('consolidate');
const mysql = require('mysql');
const mod = require('mod');
//连接池
const db = mysql.createConnection({host:'localhost',database:'blog',user:'root',password:'root'});
var server = express();
//配置模板引擎
//输出什么东西
server.set('view engine','html');
//模板文件放在哪
server.set('views','./templete');
//哪种模板引擎
server.engine('html',consolidate.ejs);
//接收用户请求
server.get('/',(req,res,next)=>{
db.query('SELECT id,titlt,post_timt,content FROM `article_table`;',(err,data)=>{
if(err){
res.status(500).send('database error1').end();
}else{
res.articals = data;
next();
}
})
});
server.get('/',function(req,res,next){
db.query('SELECT * FROM `banner_table`;',(err,data)=>{
if(err){
res.status(500).send('database error2').end();
}else{
res.banners = data;
next();
}
})
});
server.get('/',function(req,res){
var articals=res.articals;
for(var i=0;i<articals.length;i++){
articals[i].sDate = mod.time2data(articals[i].post_timt)//遍历
}
res.render('news.ejs',{banners:res.banners,articals:articals});
});
server.get('/artical',(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('数据丢失').end();
}else{
if(data.length == 0){
res.status(404).send('你请求的文章找不到了').end();
}else{
var articals_data=data[0];
articals_data.sDate = mod.time2data(articals_data.post_timt);
articals_data.content=
articals_data.content.replace(/^/gm,'<p>').replace(/$/gm,'</p>');
res.render('news-detail.ejs',{articals_data:articals_data});
}
}
})
}else{
res.status(404).send('你请求的文章找不到了').end();
}
});
//读取静态文件
server.use(expressStatic('./www'))
server.listen(8090);
其中:
(1)mod---自定义模块
------- 在node_modules文件夹中;
--------数据库中时间是s为单位-----1998-03-05 12:34:56
function toDou(n){
return n<10?'0'+n:''+n
}
module.exports = {
time2data:function(timestamp){
var oDate = new Date();
oDate.setTime(timestamp*1000);//以毫米为单位
return oDate.getFullYear()+'-'+toDou(oDate.getMonth()+1)+'-'+toDou(oDate.getDate())+' '+toDou(oDate.getHours())+':'+toDou(oDate.getMinutes())+':'+toDou(oDate.getSeconds())
}
}
前台代码
列表页面跳转
<a class="new-listHead" href="/artical?id=<%=articals[i].id%>">
<span class="my-newTitle"><%=articals[i].titlt%></span>
</a>
<span><%=articals[i].sDate%></span>
详情页面展示
内容部分不转义-------<%-articals_data.content%>
<h4 class="new-detailTitle"><%=articals_data.titlt%></h4>
<p><span><%=articals_data.sDate%></span></p>
<div class="detail-order-content"><%-articals_data.content%></div>