nodejs CURD(增删改查)get和post方法

node+mysql+express

作为一个node初学者,让以后的人有个参考  把我做的一个demo 写出来 就是简单的  CURD 

用到的数据库是 mysql (mongodb以前没研究过,或许以后会研究下),废话不多说 上代码:

 

1.用node命令 新建一个 express 项目

express -e abcd(项目名,随便叫)

 

2.创建链接数据库目录文件

abcd/config/db.js

 

module.exports = {
    mysql:{
        host:'localhost',
        user:'root',
        password:'root',
        port:3306,
        database:'user'
    }
}

 

 

 

创建module

abcd/config/usersql.js

 

var UsersSql = {
    Insert:'insert into users(username,password) values(?,?)',
    QueryAll:'select * from users',
    QueryOne:'select * from users where id=?',
    Delete:'delete from users where id=?',
};
module.exports = UsersSql;

 

 

 

3.进入routes 目录 操作 users.js(相当于php里面的 controller)

 

var express = require('express');
var router = express.Router();

// 导入MySQL模块
var mysql = require('mysql');
var dbConfig = require('../config/db');
var userSQL = require('../db/usersql');

/* GET users listing. */
router.get('/', function(req, res) {
  res.send('respond with a resource');
});

// 使用DBConfig.js的配置信息创建一个MySQL连接池
var pool = mysql.createPool( dbConfig.mysql );
//查询全部
router.get('/listuser',function (req, res) {
    // 从连接池获取数据
    pool.getConnection(function (err, connection) {
        // 执行sql语句
        connection.query(userSQL.QueryAll, function (error, results) {
            if (error) throw error;
            //渲染到模版
            res.render('listuser', {
                title: 'list',
                results: results
            });

            connection.release();
        });
    });
});

//    失败了   -_-!!!
// router.post('/one',function (req, res) {
//     http.createServer(function (request, resend) {
//         var body = '';
//         request.on('data',function (chunk) {
//             body = +chunk;
//         })
//         request.on('end',function () {
//             body = querystring.parse(body);
//             pool.getConnection(function (err, connection) {
//                 connection.query(userSQL.QueryOne,[body.id],function (error, results) {
//                     if (error) throw error;
//                     res.render('one',{
//                         title:'数据',
//                         results:results
//                     })
//                 })
//             })
//         })
//     })
// });

//     再来一次    (┬_┬)成功了

router.post('/one',function (req, res) {
    var id = req.body.id;
    pool.getConnection(function (err, connection) {
        connection.query(userSQL.QueryOne,[id],function (error, results) {
            if (error){
                res.end('查询失败',err)
            }else {
                res.render('one',{
                    title:'数据',
                    results:results
                })
            }
            connection.release();
        })
    })
});

router.get('/add',function (req, res) {
    res.render('add',{ title:'增加用户'});
});

router.post('/addtoo',function (req, res) {
    var username = req.body.username;
    var password = req.body.password;

    pool.getConnection(function (err, connection) {
        connection.query(userSQL.Insert,[username,password],function (error, results) {
            if (error) throw error;
            if (results){
                res.redirect('/users/listuser')
            }
            connection.release();
        })
    })
});

router.get('/delete',function (req, res) {
   var param = req.query || req.param;
   pool.getConnection(function (err, connection) {
       connection.query(userSQL.Delete,[param.id],function (error, results) {
           if (error) throw error;
           if (results){
               res.redirect('/users/listuser')
           }
           connection.release();
       })
   })

});

router.get('/edit',function (req, res) {
    var param = req.query || req.param;
    pool.getConnection(function (err, connection) {
        connection.query(userSQL.QueryOne,[param.id],function (error, results) {
            if (error) throw error;
            if (results){
                res.render('edit',{
                    title:'修改',
                    results:results
                })
            }
            connection.release();
        })
    })
});

router.post('/toedit',function (req, res) {
    var id = req.body.id;
    var username = req.body.username;
    var password = req.body.password;

    pool.getConnection(function (err, connection) {
        var sql = 'update users set username="'+username+'", password="'+password+'" where id='+id;
        console.log(sql);
        connection.query(sql,function (error, results) {
            if (error) throw error;
            if (results){
                res.redirect('/users/listuser');
            }
            connection.release();
        })
    })
})

module.exports = router;

 

 

 

4.最后说明一点 ejs 模版 foreach循环

 

<% results.forEach(function(b, index) { %>
    <li><%= b.id %></li>
    <li><%= b.username %></li>
    <li><%= b.password %></li>
<% }); %>
 
其中:results 是传过来的 数据,对象 index是数量也就是 count

 

 

 

模版文件和数据库 我就不一 一贴出来了 相信大家都会  

 

结语:nodejs 渲染模版文件  如果 不想用ejs 或者 jade 请查看 我的其他文章:http://blog.csdn.net/genziisme/article/details/70254614  关于如何更改模版引擎

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值