nodejs后端-工程化实现-Go网上数码商城【第二思量】-完成访问数据库渲染页面数据
model.js文件解析
var mysql = require('mysql')
// if(mysql){
// console.log("ok");验证
// }
var config = require('./config');
// 创建连接池
// 成为一个对象
var pool = mysql.createPool({
connectionLimit:100,//最大连接数
multipleStatements:true,//允许多语句查询
host:config.host,
user:config.user,
password:config.password,
database:config.database
})
console.log(pool);输出为一个对象
一个对象里面包括了我们需要的一些具体信息。
这就是部分键值对,信息显示……
然后对,这个数据库进行语句访问:
var mysql = require('mysql')
// if(mysql){
// console.log("ok");
// }
var config = require('./config');
// 创建连接池
// 成为一个对象
var pool = mysql.createPool({
connectionLimit:100,//最大连接数
multipleStatements:true,//允许多语句查询
host:config.host,
user:config.user,
password:config.password,
database:config.database
})
// console.log(pool);
module.exports.findProduct = function(callback){
pool.getConnection(function(err,conn){
if(err){
return callback('连接池连接失败!'+err,null)
}
var sql = `
SELECT * FROM go_product WHERE p_type='ad-product-computer' LIMIT 4;
SELECT * FROM go_product WHERE p_type='ad-product-phone' LIMIT 4;
SELECT * FROM go_product WHERE p_type='ad-product-pad' LIMIT 4;
SELECT * FROM go_product WHERE p_type='ad-product-ear' LIMIT 4;
SELECT * FROM go_product;
`
conn.query(sql,function(err,results){
conn.release();
if(err){
return callback('查询失败'+err,null)
}
callback(null,results)
})
})
}
dule.exports.findProduct
这个模块导出的信息是根据sql的语句查询,返回以数组-(数组-对象)的形式返回一个数据(结构化)
conn.query(sql,function(err,results){
conn.release();
if(err){
return callback('查询失败'+err,null)
}
callback(null,results)
})
通过函数回调返回查询成功的数据库数据信息(回调给路由处理)
.findProduct(function(err,results){
// 接受到以数组-(数组(不同的查询结果)>对象形式)的数据类型序列
console.log(results);
})
这样就会收到数据库的信息以及数值。
接着进行数据渲染:(替换)
.findProduct(function(err,results){
// 接受到以数组-(数组(不同的查询结果)>对象形式)的数据类型序列
// console.log(results);
var compiled = _.template(data.toString());
var htmlStr = compiled({
computerList:results[0],
phoneList:results[1],
padList:results[2],
earphoneList:results[3],
productList:results[4],
})
res.setHeader('Content-Type','text/html;charset=utf-8');
res.end(htmlStr);
})
版权声明
本文仅代表作者观点,不代表博信信息网立场。