express 获取数据后渲染

一、简洁版

//db.js
var mysql = require('mysql');

exports.createConn = function(options){
    var client = mysql.createConnection(options);
    return client;
};

exports.getUsers = function (client,callback){
    var selectstatement = 'select * from books';
    client.query(selectstatement,function(errs,rows,fields){
        if(errs){
            console.log(111222333)
            callback(errs);
        }
        if(rows){
            console.log(112233)
            //console.log(rows);
            callback(rows);
        }
    })
};
exports.end=function(client){
    client.end(function(err){
        if(err)  return;
    });
};
//database-default.js
module.exports = {
    mysql: {
        host: '127.0.0.1',
        user: 'root',
        password: '',
        database:'write_app',
        //port: 3306
    }
}
//user.js
var express = require('express');
var router = express.Router();
var options = require('../config/database-default')
var db = require('../config/db.js');

//请求作者页

router.route('/user/index').get(function(req,res,next){
    console.log(req.session.user);
    if(req.session.user){
        res.render('user',{title:'作者管理'});
    }else{
        req.session.originalUrl = req.originalUrl?req.originalUrl:null;//记录用户的请求路径
        console.log(req.session.originalUrl);
        res.redirect('/login');
    }
}).post(function(req,res){
    var mes;
    console.log(options.mysql);
    var client = db.createConn(options.mysql);
    db.getUsers(client,function(res){
        res.render('index',{results:res});//渲染index模板,并传递res数据
    });
    }
//index.ejs
<ul>
    <% for(var i=0; i<result.length; i++) { %>
        <li><%=result[i].comment %></li>
    <% } %>
</ul>

二、使用pool连接池

var mysql = require('mysql'); 
var pool = mysql.createPool{
        host: '127.0.0.1',
        user: 'root',
        password: '',
        database:'write_app',
        //port: 3306
};

pool.on('connection',function(connection){
    connection.qurey('SET SESSION auto_increment_increment=1')
});

pool.getConnection(function(err,connection){
    pool.query('SELECT * form books',function(err,res){
            if(err) throw err;
            res.render('index',{result:res});//渲染index模板,并传递res数据
            connection.release();//会把连接放回连接池,等待其它使用者使用!
    })
});
pool.end(function(err){
    if(err) return;
})
//index.ejs
<ul>
    <% for(var i=0; i<result.length; i++) { %>
        <li><%=result[i].comment %></li>
    <% } %>
</ul>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值