修改路由逻辑,优先判断请求类型:
var fs = require('fs');
var url = require('url');
// 引入业务模块使用模板引擎加载页面
var yewu = require('./yewu');
exports.bind = function (server) {
server.on('request', function (request, response) {
// 优先判断请求方式
var method = request.method;
// 解析URL参数
var url_obj = url.parse(request.url, true);
if(method == 'GET'){
// console.log(url_obj.query);//参数
if (url_obj.pathname == '/') {
var data = yewu.html_data;
response.end(data);
// 判断 获取单个用户信息路由
}else if(url_obj.pathname == '/getuser'){
}else {
fs.readFile('.' + url_obj.pathname, function (error, data) {
response.end(data);
})
}
}else if(method == 'POST'){
}
})
}
修改静态模板,添加查看连接
<td>
<a href="/getuser?id={{$value.id}}">查看</a>
<a href="#">修改</a>
<a href="#">删除</a>
</td>
修改路由,获取get请求参数,并将id参数传入业务模块
// 判断 获取单个用户信息路由
else if(url_obj.pathname == '/getuser'){
// 获取id参数
var id = url_obj.query.id;
// 在yewu模块中封装方法,传递id参数。
// 使用回掉函数获取数据
yewu.gets(url_obj.query.id,function(data){
response.end(data);
});
}
修改业务模块,添加gets方法
// 封装gets方法并导出,接受id参数及回调函数
exports.gets = function(id,callback){
// 调用数据库模块的getone方法,并传入id参数
linkdb.getone(id,function(data){
// 利用回调函数获取数据
var user_data = template('./users.html',{data:data});
callback(user_data);
});
}
添加users.html静态模板
<body>
{{data[0].name}}
{{data[0].nengli}}
{{data[0].jituan}}
{{data[0].name}}
{{data[0].name}}
</body>
修改数据库模块,添加getone方法
exports.getone = function(id,callback){
var sql = "select * from users where id="+id;
// console.log(sql);
connection.query(sql,function(error,data,res){
console.log(data);
// 数据是通过回调函数的方式返回
callback(data)
});
// connection.end();
}
注意:将数据库模块中的所有 connection.end(); 删除,因为我们有多个方法,不能在方法调用中停止数据库的连接,否则,其他方法在后续调用中无法连接数据;