查询SELECT后台数据,在前台渲染,文章列表---文章详情 (自定义模块)

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>
扫描二维码关注公众号,回复: 2237028 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_33828155/article/details/81088220