内容比较冗长,从零搭建,现在我们已经可以进行简单的判断使用服务器,并返回状态,本章期望使用node.js连接mysql数据库,并查询到响应内容。
此部分可能需要你有一定数据库基本知识
管理工具使用的是SQLyog
使用mysql模块连接数据库
安装:npm install mysql -s
在indexCtrl.js文件中引入
使用:我们需要知道几个数据库操作的基本步骤:
const sql = require('mysql');引入
//1、创建数据库连接,使用该模块的createConnection方法
//参数:host连接数据库的ip,port连接数据库的端口,user用户名,password密码,database数据库名
let db = sql.createConnection({
host:'localhost',
port:'3000',
user:'root',
password:'root',
database:'demotable' //数据库名称
});
//2、打开数据库
db.connect();
//3、操作数据库
//query(sql语句,参数,操作回调(err,success){})
db.query()
//4、关闭数据库
db.end()
创建数据库时createConnection中的对象:
已知数据库demotable中存在表demo1,demo1表中有一或多条用户数据,
我们需要通过用户在表单中输入的内容查询在我们的数据库中是否有这条数据,然后返回给浏览器查询状态或者其他信息。
所以在每一次处理判断响应对象的时候,我们都需要构建一次数据库连接
修改之后,我们的indexCtrl.js
就变成了这样:
var sql = require('mysql');
module.exports = {
login(req,res){ //post
let username = req.body.username;
let pwd = req.body.pwd;
pool('select * from demo1 where ucount = ? and pwd = ?',[username,pwd],res)
},
loginG(req,res){ //get
let username = req.query.username;
let pwd = req.query.pwd;
pool('select * from demo1 where ucount = ? and pwd = ?',[username,pwd],res)
}
};
//公用部分封装
function pool(msql,user,res) {
let db = sql.createConnection({
host:'localhost',
port:'3306',
user:'root',
password:'root',
database:'demotable'
});
db.connect();
db.query(msql,user,(err,data)=>{
//err为sql语句报错时的错误信息
if (data.length){
res.send('登陆成功')
} else{
res.send('登陆失败')
}
});
db.end()
}
其他文件没有改变,这时候我们再重新走一遍登陆提交的流程:
重启服务器、刷新页面、输入内容后登陆
我们得到:
如果想将这条数据返回,直接把查询到的对象返回即可。