关于我个人博客的记录——Node.js后台模块处理

var express=require("express");
var mysql=require("mysql");

//配置数据库连接池
var pool=mysql.createPool({
    host:'127.0.0.1',           //IP地址
    port:3306,                  //端口号
    database:'blog',          //数据库
    user:'root',                //用户名
    password:'a'
});
//路由操作,第一步:需要加载路由
var router=express.Router();

//当加载main.js的时候就必定是首页里面的内容,而首页里面的内容,绝对要有分类
var alltype;
router.use(function (req,res,next) {
    pool.getConnection(function (err,conn) {
        conn.query("select * from type order by tid",function (err,result) {
            conn.release();
            alltype=result;
            //请注意,一定要执行next
            next();     //next指继续往下执行,让程序查完sql语句之后,继续往下运行
        });
    });
});
//第二步:处理请求
router.get("/",function (req,res) {     //分页查找
    var page=Number(req.query.page||1);
    var mytype=Number(req.query.mytype||1);
    pool.getConnection(function (err,conn) {
        conn.query("select * from type order by tid",function (err,result) {
            //注意,这里现在需要同时查两个东西:①。所有的文章类型 ②。所有的文章内容
            //注意:绝对不能在释放连接之后再去查找
            if (mytype==1){
                var sql1="select c.*,t.tname,u.uname from contents c,type t,user u where c.tid=t.tid and c.uid=u.uid";
            } else {
                var sql1="select c.*,t.tname,u.uname from contents c,type t,user u where c.tid=t.tid and c.uid=u.uid and c.tid="+mytype;
            }
            conn.query(sql1,function (err2,result2) {
                //总记录条数
                var count=result2.length;
                //规定一次默认分6条数据
                var size=6;
                //计算总页数
                var pages=Math.ceil(count/size);
                //控制页数
                page=Math.min(page,pages);
                page=Math.max(page,1);
                //开始的条数
                var beginSize=(page-1)*size;

                //开始分页查找
                if (mytype==1){
                    var sql2="select c.*,t.tname,u.uname from contents c,type t,user u where c.tid=t.tid and c.uid=u.uid limit ?,?";
                } else {
                    var sql2="select c.*,t.tname,u.uname from contents c,type t,user u where c.tid=t.tid and c.uid=u.uid and c.tid="+mytype+" limit ?,?";
                }
                conn.query(sql2,[beginSize,size],function(err2,result2){
                        conn.release();
                        //现在数据有了result,如何将这个数据传到网页里面去?
                        //网页路径  传到这个网页的模板引擎的参数
                        res.render("main/index",{
                            types:result,
                            contents:result2,
                            page:page,
                            pages:pages,
                            size:size,
                            count:count,
                            mytype:mytype,
                            userInfo:req.session.userInfo       //取session
                        });
                    });
            });
        });
    });
});

//查看文章详情
router.get("/view",function (req,res) {
    var cid=req.query.cid;
    var mytype=Number(req.query.mytype||1);
    pool.getConnection(function (err,conn) {
        conn.query("select c.*,u.uname from contents c,user u where c.uid=u.uid and c.cid=?",[cid],function (err,result) {
            if (err){
            console.log(err);
        } else {
            res.render("main/view",{
                types:alltype,
                mytype:mytype,
                content:result[0],
                userInfo:req.session.userInfo
            });
          }
        });
    });
});
//第三步,将这个支线模块,加载到主模块里面去
module.exports=router;

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值