nodejs使用express+ejs对mysql数据库的增删改查

来源:互联网 发布:java图书馆系统源代码 编辑:程序博客网 时间:2024/06/05 04:25

1.在已经搭建好的nodejs+express+ejs框架中创建config目录,在目录中创建db.js里面写入如下代码:

var mysql = require('mysql');


/** 配置mysql的参数 */
var pool = mysql.createPool({
    host:'localhost',
    user:'root',
    password:'root',
    database:'test'
});

/** 数据库链接 */
function query(sql,callback){
    pool.getConnection(function(err,connection){
        connection.query(sql,function(err,rows){
            callback(err,rows);
            //释放链接
            connection.release();
        });
    });
}

exports.query = query;

2.在routes目录中创建users.js里面写入如下代码:

var express = require('express');
var router = express.Router();
var db = require('../config/db');

/* 查询数据库数据 */
router.get('/', function(req, res) {
  var sql = 'select * from users';
  db.query(sql,function(err,rows){
      if(err){
        res.render('user/userList', {title: '我的测试', datas: []});
      }else {
        res.render('user/userList', {title: '我的测试', datas: rows});
      }
  });
});


/**
 * 新增页面跳转
 */
router.get('/add', function (req, res) {
    res.render('user/addUser');
});

router.post('/add', function (req, res) {
    var name = req.body.name;
    var age = req.body.age;
    var sql = "insert into users(Name,Age) values('" + name + "'," + age + ")";
    db.query(sql, function (err, rows) {
      if (err) {
        res.end('新增失败:' + err);
      } else {
        res.redirect('users');
      }
    })
});


/**
 * 删
 */
router.get('/del/:id', function (req, res) {
  var id = req.params.id;
  var sql = "delete from users where Id=" + id;
  db.query(sql, function (err, rows) {
    if (err) {
      res.end('删除失败:' + err)
    } else {
      res.redirect('users')
    }
  });
});


/**
 * 修改
 */
router.get('/toUpdate/:id', function (req, res) {
  var id = req.params.id;
  var sql = "select * from users where Id=" + id;
  db.query(sql, function (err, rows) {
    if (err) {
      res.end('修改页面跳转失败:' + err);
    } else {
      res.render("user/updateUser", {datas: rows});       //直接跳转
    }
  });
});

router.post('/update', function (req, res) {
    var id = req.body.id;
    var name = req.body.name;
    var age = req.body.age;
    var sql = "update users set Name='" + name + "',Age='" + age + "' where Id=" + id;
    db.query(sql, function (err, rows) {
      if (err) {
        res.end('修改失败:' + err);
      } else {
        res.redirect('users');
      }
    });
});


/**
 * 按照条件查询
 */
router.post('/search', function (req, res) {
    var name = req.body.s_name;
    var age = req.body.s_age;

    var sql = "select * from users ";

    if (name) {
        sql += " where Name like '%" + name + "%' ";
        if (age) {
            sql += " and Age=" + age + " ";
        }
    }else{
        if (age) {
            sql += " where Age=" + age + " ";
        }
    }
    // sql = sql.replace("and","where");
    db.query(sql, function (err, rows) {
        console.log(rows);
      if (err) {
        res.end("查询失败:", err)
      } else {
        res.render("user/userList", {title: 'Express', datas: rows, s_name: name, s_age: age});
      }
    });
});

module.exports = router;

3.在views目录下创建user目录,user目录下创建如下几个文件

1.userList.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{{title}}</title>
</head>
<body>
<form action="/users/search" method="post">
    姓名:<input type="text" name="s_name" value="{{s_name}}"><br>
    年龄:<input type="text" name="s_age" value="{{s_age}}"><br>
    <input type="submit" value="查询">
</form>

<table>
    <tr>
        <th>编号</th>
        <th>姓名</th>
        <th>年龄</th>
        <th>地址</th>
        <th>手机</th>
        <th>电子邮箱</th>
        <th>操作</th>
    </tr>
    {{each datas as users index}}
    <tr>
        <td>{{users.Id}}</td>
        <td>{{users.Name}}</td>
        <td>{{users.Age}}</td>
        <td>{{users.Address}}</td>
        <td>{{users.Phone}}</td>
        <td>{{users.Mail}}</td>
        <td><a href="/users/add">新增</a></td>
        <td><a href="/users/del/{{users.Id}}">删除</a></td>
        <td><a href="/users/toUpdate/{{users.Id}}">修改</a></td>
    </tr>
    {{/each}}
</table>
</body>
</html>

2.addUser.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>新增页面</title>
</head>
<body>
    <form action="/users/add" method="post">
        姓名:<input type="text" name="name"><br>
        年龄:<input type="text" name="age"><br>
        <input type="submit" value="提交">
    </form>
</body>
</html>

3.updateUser.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>修改页面</title>
</head>
<body>
    <form action="/users/update" method="post">
        <input type="hidden" value="{{datas[0].id}}" name="id">
        姓名:<input type="text" name="name" value="{{datas[0].name}}"><br>
        年龄:<input type="text" name="age" value="{{datas[0].age}}"><br>
        <input type="submit" value="提交">
    </form>
</body>
</html>

技术:首先要npm install mysql或者npm install mysql --save,其次我使用了angular.js,如果不想引入用原生的也可以。在实现这些代码是基于nodejs的express+ejs框架中实现的。

0 0
原创粉丝点击