时间:2021-07-01 10:21:17 帮助过:39人阅读
就是数据库的用户名,密码和数据库名。如果你的数据库和代码不再一个电脑就需要数据库的地址。
usersql.js
就是实现后台业务所需要的mysql的操作语句
var UserSQL = {
insert:‘INSERT INTO user(username,password,date,type,openid) VALUES(?,?,?,?,?)‘,
bangding:‘UPDATE user SET type = ?,openid = ? WHERE username = ? AND password = ? ‘,
queryAll:‘SELECT * FROM user‘,
getUserByOpenid:‘SELECT * FROM user WHERE openid = ? ‘,
getUserByInfo:‘SELECT * FROM user WHERE username = ? AND password = ? ‘,
deleteUserByInfo:‘DELETE FROM user WHERE username = ? AND password = ? ‘,
};
module.exports = UserSQL;
users.js
// 导入MySQL模块
var dbConfig = require(‘../db/DBConfig‘);
var User = require(‘../db/usersql‘);
var mysql = require(‘mysql‘); // 引入mysql依赖
var client = mysql.createConnection(dbConfig.mysql); // 建立连接
// 注册接口
router.all(‘/user/register‘, function(req, res, next){
if (req.method == "POST") {
var param = req.body;
} else{
var param = req.query || req.params;
}
client.query(User.getUserByInfo,[param.username,param.password],function (err, results){
if (err){
throw err
}else{
// 数据库不存在 就注册成功
if (results.length == 0) {
// 把新用户插入数据库
client.query(User.insert,[param.username,param.password,getDataStr(),‘‘,‘‘],function (err, results) {
if(err){
throw err
}else{
res.end(JSON.stringify({status:‘100‘,msg:‘注册成功!‘}));
}
})
} else{ // 数据库存在就注册失败
res.end(JSON.stringify({status:‘101‘,msg:‘该用户名已经被注册‘}));
}
}
})
});
// 登录接口
router.all(‘/user/login‘, function(req, res, next){
if (req.method == "POST") {
var param = req.body;
} else{
var param = req.query || req.params;
}
client.query(User.getUserByInfo,[param.username,param.password],function (err, results){
if (err){
throw err
}else{
// 数据库存在
if (results.length == 0) {
res.end(JSON.stringify({status:‘102‘,msg:‘用户名或密码错误‘}));
} else{
if (results[0].username == param.username && results[0].password == param.password) {
res.end(JSON.stringify({status:‘100‘,msg:‘登录成功‘}));
}
}
}
})
});
openid
去数据库查找 openid
和这个相等就返回注册成功flag
字段。// 第三方登陆接口
router.all(‘/user/thirdlogin‘, function(req, res, next){
if (req.method == "POST") {
var param = req.body;
} else{
var param = req.query || req.params;
}
console.log(param.openid);
client.query(User.getUserByOpenid,[param.openid],function (err, results){
if (err){
throw err
}else{
// 数据库不存在 就跳转绑定 flag=1 需要绑定 flag=2 // 不需要绑定
if (results.length == 0) {
res.end(JSON.stringify({status:‘100‘,msg:‘操作成功‘,flag:‘1‘}));
} else{ // 数据库存在就登录成功
res.end(JSON.stringify({status:‘100‘,msg:‘登录成功‘,flag:‘2‘}));
}
}
})
});
// 绑定接口
router.all(‘/user/bangding‘, function(req, res, next){
if (req.method == "POST") {
var param = req.body;
} else{
var param = req.query || req.params;
}
client.query(User.getUserByInfo,[param.username,param.password],function (err, results){
if (err){
throw err
}else{
// 更新用户信息
client.query(User.bangding,[param.type,param.openid,param.username,param.password],function (err, results) {
if(err){
throw err
}else{
res.end(JSON.stringify({status:‘100‘,msg:‘绑定成功!‘}));
}
})
}
})
});
以上的流程基本是最简单的了。
测试可以在浏览器测试,根据接口输入对应的参数即可。我是自己写了一个简单的测试app。
我是事先在数据库插入了一些数据。
app效果:
以前一直都是写iOS的app或是H5的app。这次自己独自写前后台。算是一下小小的突破。
前后台一起写的时候,发现前后台,需要很多的配合。以前只是接口不对了就找后台修改。这次就是自己修改了。
这需要很多的配合。就像月初做那个物流管理的app。后台人员我就不吐槽了。我都想找他把数据库的地址用户名和密码
要过来,我自己写后台算了。
要学习的还有很多,遇见问题不要怕,仔细的看报错信息,自己先静下心来思考,看文档。不懂再上网搜索。
Node.js+express+MySQL仿美团注册登录绑定第三方登录
标签:mysql 文章 学习 conf xming script 提交 参数 comment