查询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){
		if(req.query.act == 'like'){
			db.query(`UPDATE article_table SET n_like=n_like+1 WHERE id=${req.query.id}`,(err,data)=>{
				if(err){
					res.status(500).send('‘数据库有小问题').end();
					console.log(err);
				}else{
					//显示文章
					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{
			//显示文章
				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 class="new-detail-time">
                <span><%=articals_data.sDate%></span>
                <a style="float:right;" href="/artical?id=<%=articals_data.id%>&act=like"><%=articals_data.n_like%></a>
            </p>
<div class="detail-order-content"><%-articals_data.content%></div>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值