zoukankan      html  css  js  c++  java
  • node.js代码二

      1 var express = require('express');
      2 var app = express();
      3 var server = require('http').Server(app);
      4 var io = require('socket.io')(server);
      5 var formidable = require('formidable');
      6 var mysql = require('mysql');
      7 var session = require('express-session');
      8 var cookieParser = require('cookie-parser');
      9 
     10 // 静态。
     11 app.use(express.static('public'));
     12 app.use(express.static('node_modules'));
     13 app.use(cookieParser());
     14 app.use(session({
     15     secret:'randomstring',
     16     resave: false,
     17     saveUninitialized:true,
     18     cookie:{
     19         maxAge:600000,
     20         hostOnly:true
     21     }
     22 }));
     23 
     24 // 配置 模版引擎。
     25 app.set('view engine', 'ejs');
     26 app.set('views', './views');
     27 
     28 // 路由设置。
     29 // 引入登录。
     30 app.post('/doLogin', function(req, res){
     31 
     32     var form = new formidable.IncomingForm();
     33 
     34     // 表单处理。
     35     form.parse(req, function(error, fields, files){
     36 
     37         // 获取用户名和密码。
     38         var username = fields.username;
     39         var password = fields.password;
     40         var rememberme = fields.rememberme;
     41 
     42         // 查询数据库。
     43         var con = mysql.createConnection({
     44             host:'localhost',
     45             user:'root',
     46             password:'',
     47             database:'lamp183'
     48         });
     49 
     50         // 连接。
     51         con.connect();
     52 
     53         // 执行查询。
     54         con.query("SELECT * FROM user WHERE username='"+ username +"'", function(err, results, fields){
     55 
     56             // console.log(results[0].password);
     57             // res.send('ok');
     58 
     59             if(results.length <= 0)
     60             {
     61 
     62                 res.json({'login': 0, 'data':'没有这个用户'});
     63                 return ;
     64             }
     65 
     66             // 判断密码。
     67             if(results[0].password != password)
     68             {
     69 
     70                 res.json({'login': 0, 'data':'密码错误'});
     71 
     72             }
     73             else
     74             {
     75 
     76                 // 判断是否记住我。
     77                 if(rememberme == 1)
     78                 {
     79 
     80                     res.cookie('admin', results[0], {maxAge: 600000000, hostOnly:true});
     81 
     82                 }
     83 
     84                 // 将用户数据存入session
     85                 req.session.admin = results[0];
     86 
     87                 // 发送登录成功指令
     88                 res.json({'login': 1, 'data':results[0]});
     89 
     90             }
     91 
     92         });
     93 
     94         con.end();
     95         return ;
     96 
     97     });
     98 
     99 });
    100 
    101 // 注册功能。
    102 app.post('/doRegist', function(req, res){
    103 
    104     var form = new formidable.IncomingForm();
    105 
    106     // 表单处理。
    107     form.parse(req, function(error, fields, files){
    108 
    109         // console.log(fields);
    110         var username = fields.username;
    111         var password = fields.password;
    112         var nickname = fields.nickname;
    113 
    114         // 查询数据库。
    115         var con = mysql.createConnection({
    116             host:'localhost',
    117             user:'root',
    118             password:'',
    119             database:'lamp183'
    120         });
    121 
    122         // 连接。
    123         con.connect();
    124 
    125         // 执行添加。
    126         con.query("INSERT INTO user(username,password,nickname) VALUES('"+ username +"','"+ password +"','"+ nickname +"')", function(err, results, fields){
    127 
    128             // console.log(results);
    129             if(results.affectedRows > 0)
    130             {
    131 
    132                 res.json({'regist':1, 'info':'注册成功,请登录'});
    133 
    134             }
    135             else
    136             {
    137 
    138                 res.json({'regist':0, 'info':'注册失败'});
    139 
    140             }
    141 
    142         });
    143 
    144         con.end();
    145         return ;
    146 
    147     });
    148 
    149 });
    150 
    151 // 监听。
    152 server.listen(8080);
    153 
    154 // 引入聊天室页面。
    155 app.get('/', function(req, res){
    156 
    157     // 判断用户是否已经登录。
    158     if(req.session.admin || req.cookies.admin)
    159     {
    160 
    161         res.render('index2');
    162 
    163         io.on('connection', function(socket){
    164 
    165             if(req.session.admin)
    166             {
    167         
    168                 socket.emit('nolog', req.session.admin);
    169 
    170             }
    171             else if(req.cookies.admin)
    172             {
    173 
    174                 socket.emit('nolog', req.session.admin);
    175 
    176             }
    177 
    178         });
    179 
    180     }
    181     else{
    182 
    183         res.render('index');
    184 
    185     }
    186 
    187     // res.render('index');
    188     // console.log(req.session.admin);
    189 
    190 });
    191 
    192 var users = [];
    193 
    194 // 建立连接
    195 io.on('connection', function(socket) {
    196 
    197     socket.on('login', function(data){
    198 
    199         // console.log(data.data.nickname);
    200         // 保存所有用户。
    201         var u = {nickname:data.data.nickname};
    202         users.push(u);
    203 
    204     });
    205 
    206     socket.on('users', function(){
    207 
    208         // 发送给所有客户端。
    209         socket.emit('users', users);
    210 
    211     });
    212 
    213     // 监听消息
    214     socket.on('send', function(data){
    215         // console.log(data);
    216         // 发送给所有用户。
    217         socket.broadcast.emit('receiver', data);
    218            
    219     });
    220 
    221 });
    222 
    223 // 退出登录功能。
    224 app.get('/logout', function(req, res){
    225 
    226     // 清空session和cookie
    227     if(req.session.admin)
    228     {
    229 
    230         var name = req.session.admin.nickname
    231         delete(req.session.admin);
    232 
    233     }
    234     else
    235     {
    236         var name = req.session.admin.nickname
    237         res.cookie('admin', 1, {maxAge: -1, hostOnly:true});
    238     }
    239 
    240     // 跳转登录页面。
    241     res.redirect('/');
    242     return ;
    243 
    244 });
  • 相关阅读:
    Javascript获取本周,本月,本季,本年,上月,上周,上季,去年,上二周,上二月
    SQL SERVER 2008 评估期已过的解决办法
    习惯那些“小事”
    Oracle 测试语句
    整理js常用按键相关代码
    .NET 学习笔记
    lamda表达式学习
    使用Html.DropDownList
    ibatis
    MyBatis
  • 原文地址:https://www.cnblogs.com/peilanluo/p/7282008.html
Copyright © 2011-2022 走看看