Node.js 学习(四)——实现用户登录功能

贫寒豌豆

共 2074字,需浏览 5分钟

 · 2017-04-24

Node.js学习(四)——实现用户登录功能

本文目的

了解node.js的整套前后台流程

具体实现

使用express创建项目

express -e nodejs-login-demo

修改package.json文件

添加mysql,bootstrap和jquery模块,用的是最新版本,所以写的是latest

{
  "name": "nodejs-login-demo",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {
    "body-parser": "~1.15.1",
    "cookie-parser": "~1.4.3",
    "debug": "~2.2.0",
    "ejs": "~2.4.1",
    "express": "~4.13.4",
    "morgan": "~1.7.0",
    "serve-favicon": "~2.3.0",
    "mysql":"latest",
    "bootstrap":"latest",
    "jquery":"latest"
  }
}

将jquery和bootstrap拷贝的public下

参考http://blog.csdn.net/flygoa/article/details/52677652

登录页面

修改index.ejs文件



  
    用户登录
    
    
    
  
  
    

登录demo

登录接口

修改routes(路由)目录下index.js文件,添加一下内容

//登录接口
router.post('/login', function(req, res, next) {
  var name = req.body.username;
  var pwd = req.body.password;
  var mysql = require('mysql');
  //配置连接
  var connection = mysql.createConnection({
    host: 'localhost',//主机地址
    user: 'root',//登录名
    password: '',//密码,我这里是空
    database:'nodejsdb'//数据库
  });
  //输入验证
  if(!name || name == "") {
    console.log("用户名不能为空");
    res.send('用户名不能为空');
    return;
  }
  if(!pwd || pwd == "") {
    console.log("密码不能为空");
    res.send('密码不能为空');
    return;
  }
  //查库比较
  connection.connect();
  connection.query('SELECT COUNT(*) checkNum FROM `t_user` WHERE name = \''+name+'\' AND psw =\''+ pwd +'\'', function(err, rows, fields) {
    if (err) throw err;
    var checkNum = rows[0].checkNum;
    console.log('结果为: ', rows[0].checkNum);
    if(checkNum == 0){
      console.log('账号或密码不正确');
      res.send('账号或密码不正确');
    }else{
      console.log('登录成功');
      //返回结果
      res.send('登录成功,账号密码为:'+name+"---"+pwd);
    }
  });
  //关闭连接
  connection.end();
});

页面及效果

示例中使用的是res.send()方法输出一段字符串
登录页面

登录成功页面

登录失败提醒

参考

express中文api(感谢博主分享):http://blog.csdn.net/zhx6044/article/details/50179607

浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报