Node操作Mysql

操作Mysql需要先引入mysql模块var mysql = require('mysql');

新建db.js链接数据库

/**
 * Created by jiunuo on 2017/7/26.
 */
var mysql = require('mysql');

var pool = mysql.createPool({
    host: 'localhost',//服务器地址
    user: 'root',//用户名
    password: 'root',//密码
    database: 'node_test'//数据库
});

function query(sql, callback) {
    pool.getConnection(function (err, connection) {
        // Use the connection
        connection.query(sql, function (err, rows) {
            callback(err, rows);
            connection.release();//释放链接
        });
    });
}
exports.query = query;//向外暴露函数,外面的要引用

新建数据表user

Node操作Mysql_第1张图片
image.png

接下来就可以操作数据库了,新建一个 user.js来操作数据库

  • 引包
var express = require('express');
var db = require('./model/db.js');
var app = express();
app.set('view engine', 'ejs');//设置模板引擎为ejs

当我们访问‘/’的时候查询用户的所有信息,返回结果是一个数组:

app.get('/',function (req,res) {
    db.query('select *from user',function (err,rows) {
        if(err){
            res.send("查询失败")
        }else {
            //查询成功跳转到user页面,data查出来是一个数组rows
            res.render('user',{"data":rows});
            console.log(rows);
        }
    });
});
app.listen(3000);

res.render('user',{"data":rows});在跳转的时候传递这个data到user界面,在user界面用模板引擎循环显示:


    <% for(var i=0;i
    
    <%}%>
id 用户 年龄
<%=data[i].id%> <%=data[i].name%> <%=data[i].age%>
Node操作Mysql_第2张图片
image.png

添加用户:
这里表单提交试用get请求,试用post请求获取表单值太麻烦,自己可以尝试

//add页面跳转
app.get('/add',function (req,res) {
   res.render('add');
});

app.get('/user/addUser',function (req,res) {
    var username = req.query.username;//获取表单提交的username
    var age = req.query.age;//获取表单提交的age
    db.query("insert into user(name,age) values('" + username + "'," + age + ")",function (err,rows) {
        if(err){
            res.send("添加失败")
        }else {
            res.render('添加成功');
        }
    });
});
Node操作Mysql_第3张图片
填写表单
Node操作Mysql_第4张图片
添加成功

删除用户:

// 删除
app.get('/del',function (req,res) {
   var id  = req.query.id;
   db.query("delete from user where id=" + id,function (err,rows) {
       if(err){
           res.send('删除失败'+err)
       }else {
           res.redirect('/')
       }
   })
});

修改用户信息:
在修改的时候要根据id先去查找这个用户的信息,先去填充表单,然后在执行修改操作。

// 修改
app.get('/user/edit',function (req,res) {
    var id  = req.query.id;
    db.query("select * from user where id=" + id, function (err, rows) {
        if (err) {
            res.end('修改页面跳转失败:' + err);
        } else {
            res.render("edit", {data: rows});       //直接跳转,填充表单,跟查询显示一样
        }
    });
});

在填充完表单以后,在进行修改操作:

// 修改提交
app.get('/user/update',function (req,res) {
    var id = req.query.id;
    var username = req.query.username;//获取表单提交的username
    var age = req.query.age;//获取表单提交的age
    db.query("update user set name='" + username + "',age='" + age + "' where id=" + id,function (err,rows) {
        if(err){
            res.send("修改失败"+err)
        }else {
            res.send('修改成功');
        }
    });
});

github地址:https://github.com/17868804701/Node-Mysql.git

你可能感兴趣的:(Node操作Mysql)