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

      1 // 1. 引入 express
      2 var express = require('express');
      3 var formidable = require('formidable');
      4 var mysql = require('mysql');
      5 var session = require('express-session');
      6 var cookieParser = require('cookie-parser');
      7 
      8 // 2. 实例化。
      9 var app = express();
     10 
     11 // 配置。
     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 
     26 // 设置 
     27 app.set('view engine', 'ejs');
     28 app.set('views', './views');
     29 
     30 
     31 
     32 // 3. 路由配置。
     33 // 登录。
     34 app.get('/admin/login', function(req, res){
     35     // res.send('ok');
     36     
     37     // console.log(req.session.info);
     38     
     39     // 解析模板。
     40     res.render('admin-login');
     41     
     42 });
     43 app.post('/admin/login', function(req, res){
     44 
     45     // req.session.info = null;
     46     // 判断是否有 cookie
     47     if(req.cookies.rememberme && req.session.admin){
     48         res.redirect('/admin/index');
     49     }
     50 
     51 
     52     // 实例化。
     53     var form = new formidable.IncomingForm();
     54 
     55     // 表单处理。
     56     form.parse(req, function(error, fields, files){
     57         // console.log(fields);
     58         // 获取用户名 密码。
     59         var name = fields.name;
     60         var password = fields.password;
     61         var rememberme = fields.rememberme;
     62         // console.log(rememberme);
     63 
     64         // 查询数据库。
     65         var con = mysql.createConnection({
     66             host:"localhost",
     67             user:"root",
     68             password:"",
     69             database:"php183"
     70         });
     71         // 连接。
     72         con.connect();
     73         // 执行查询。
     74         con.query("SELECT * FROM users WHERE name='"+ name +"'", function(err, results, fields){
     75             // console.log(results);
     76             // res.send('ok');
     77             
     78             if(results.length <= 0){
     79                 res.send('没有这个用户');
     80                 return ;
     81             }
     82 
     83             // 判断密码。
     84             if(results[0].password != password){
     85                 req.session.info = '密码错误!';
     86                 res.redirect('/admin/login');
     87             }else {
     88 
     89                 // 判断是否记住我。
     90                 if(rememberme == 'on')
     91                 {
     92                     console.log(111);
     93                     res.cookie('rememberme', 1, {maxAge: 600000, hostOnly:true});
     94                 }
     95 
     96                 // 将用户数据存入 session
     97                 req.session.admin = results[0];
     98 
     99                 // 跳转后台主页
    100                 res.redirect('/admin/index');
    101             }
    102         });
    103 
    104         con.end();
    105         return ;
    106 
    107     });
    108 
    109 
    110 
    111     // res.send('ok');
    112 });
    113 
    114 app.get("/admin/index", function(req, res){
    115     // 判断 session
    116     if(!req.session.admin)
    117     {
    118         res.redirect('/admin/login');
    119         return ;
    120     }
    121 
    122     res.render('admin-index', {session:req.session});
    123     
    124 });
    125 
    126 // 文章管理
    127 app.get('/admin/article/add', function(req, res){
    128     // res.send('add')
    129     
    130     res.render('admin-article-add');
    131 });
    132 app.post('/admin/article/insert', function(req, res){
    133 
    134     // 实例化。
    135     var form = new formidable.IncomingForm();
    136 
    137     // 表单处理。
    138     form.parse(req, function(error, fields, files){
    139         // console.log(fields);
    140         var title = fields.title;
    141         var content = fields.content;
    142 
    143 
    144         // 查询数据库。
    145         var con = mysql.createConnection({
    146             host:"localhost",
    147             user:"root",
    148             password:"",
    149             database:"php183"
    150         });
    151         // 连接。
    152         con.connect();
    153         // 执行查询。
    154         con.query("INSERT INTO articles(title,content) VALUES('"+ title +"','"+ content +"')", function(err, results, fields){
    155             // console.log(results);
    156             if(results.affectedRows > 0)
    157             {
    158                 res.redirect('/admin/article/add');
    159                 return ;
    160             }else{
    161                 res.redirect('/admin/article/add');
    162                 return ;
    163             }
    164             
    165         });
    166 
    167         con.end();
    168         return ;
    169     });
    170 
    171 
    172     // res.send('insert')  
    173 });
    174 app.get('/admin/article/edit/:id([0-9]+)', function(req, res){
    175     // 获取  id
    176     var id = req.params.id;
    177     var p = req.query.p;
    178     console.log(p);
    179     // 查询数据库。
    180         var con = mysql.createConnection({
    181             host:"localhost",
    182             user:"root",
    183             password:"",
    184             database:"php183"
    185         });
    186         // 连接。
    187         con.connect();
    188         // 执行查询。
    189         con.query("SELECT * FROM articles WHERE id="+ id, function(err, results, fields){
    190             // console.log(results);
    191             res.render('admin-article-edit', {data:results[0],p:p});
    192             
    193         });
    194 
    195         con.end();
    196         return ;
    197 
    198     
    199 
    200 });
    201 app.post('/admin/article/update', function(req, res){
    202 
    203     // 接收
    204     var p = req.query.p;
    205     // 实例化。
    206     var form = new formidable.IncomingForm();
    207 
    208     // 表单处理。
    209     form.parse(req, function(error, fields, files){
    210         // console.log(fields);
    211         var id = fields.id;
    212         var title = fields.title;
    213         var content = fields.content;
    214 
    215 
    216         // 查询数据库。
    217         var con = mysql.createConnection({
    218             host:"localhost",
    219             user:"root",
    220             password:"",
    221             database:"php183"
    222         });
    223         // 连接。
    224         con.connect();
    225         // 执行查询。
    226         con.query("UPDATE articles SET title='"+ title +"',content='"+ content +"' WHERE id="+id, function(err, results, fields){
    227             // console.log(results);
    228             if(results.affectedRows > 0)
    229             {
    230                 res.redirect('/admin/article/index/'+ p);
    231                 return ;
    232             }else{
    233                 res.redirect('/admin/article/edit/'+ id);
    234                 return ;
    235             }
    236             
    237         });
    238 
    239         con.end();
    240         return ;
    241     });
    242 
    243 
    244 
    245 
    246     // res.send('update');
    247 });
    248 app.get('/admin/article/delete/:id([0-9]+)', function(req, res){
    249     var id = req.params.id;
    250     var p = req.query.p;
    251 
    252     // 查询数据库。
    253         var con = mysql.createConnection({
    254             host:"localhost",
    255             user:"root",
    256             password:"",
    257             database:"php183"
    258         });
    259         // 连接。
    260         con.connect();
    261         // 执行查询。
    262         con.query("DELETE FROM articles WHERE id="+id, function(err, results, fields){
    263             // console.log(results);
    264             if(results.affectedRows > 0)
    265             {
    266                 res.redirect('/admin/article/index/'+ p);
    267                 return ;
    268             }else{
    269                 res.redirect('/admin/article/edit/'+ id);
    270                 return ;
    271             }
    272             
    273         });
    274 
    275         con.end();
    276         return ;
    277 
    278 });
    279 app.get('/admin/article/index/:p([0-9]+)', function(req, res){
    280 
    281     var p = req.params.p;
    282     if(typeof(p) == 'undefined')
    283     {
    284         p = 1;
    285     }
    286     var num = 2;
    287     var total = 0;
    288     // 根据 p 处理需要的参数。
    289     // 0,10
    290     // 10,10
    291     var start = (p-1)*num;
    292     var end = num;
    293     var limit = start + ',' + end;
    294 
    295 
    296     // 查询数据库。
    297     var con = mysql.createConnection({
    298         host:"localhost",
    299         user:"root",
    300         password:"",
    301         database:"php183"
    302     });
    303     // 连接。
    304     con.connect();
    305     // 执行查询数据总条数。
    306     con.query({sql: 'SELECT COUNT(*) AS count FROM articles', timeout: 60000}, function (error, results, fields) {
    307       if (error && error.code === 'PROTOCOL_SEQUENCE_TIMEOUT') {
    308         throw new Error('too long to count table rows!');
    309       }
    310      
    311       if (error) {
    312         throw error;
    313       }
    314      
    315       total = results[0].count;
    316     });
    317 
    318 
    319     // 执行查询。
    320     con.query("SELECT * FROM articles LIMIT "+ limit, function(err, results, fields){
    321         // console.log(results);
    322         // res.send('111');
    323         
    324         res.render('admin-article-index', {data:results,total:total,num:num,p:p});
    325         
    326     });
    327 
    328     con.end();
    329     return ;
    330 
    331     // res.send('index');
    332 });
    333 
    334 // 4. 监听。
    335 app.listen(3000);
  • 相关阅读:
    ZOJ 1002 Fire Net (火力网)
    UVa OJ 117 The Postal Worker Rings Once (让邮差只走一圈)
    UVa OJ 118 Mutant Flatworld Explorers (变体扁平世界探索器)
    UVa OJ 103 Stacking Boxes (嵌套盒子)
    UVa OJ 110 MetaLoopless Sorts (无循环元排序)
    第一次遇到使用NSNull的场景
    NSURL使用浅析
    从CNTV下载《小小智慧树》
    NSDictionary and NSMutableDictionary
    Category in static library
  • 原文地址:https://www.cnblogs.com/peilanluo/p/7282000.html
Copyright © 2011-2022 走看看