node.js 调用mysql 数据库

1、在package.json中添加mysql依赖

命令:npm install mysql --save

2、项目中添加mysql文件夹

> 文件夹下创建config文件夹,并在config下创建index.js写入mysql配置文件

const mysql = require(‘mysql‘)

const connectdb=()=>{
  let connection = mysql.createConnection({
    host     : ‘localhost‘,
    port     : ‘3306‘,
    user     : ‘root‘,
    password : ‘‘,
    database : ‘rehab‘
  })
  return connection;
}

module.exports=connectdb;

mysql 配置

> mysql文件夹下创建mysql.js文件

const conn = require(‘./config/index‘);
const connection = conn();

// 查询所有数据
let selectAll = async(sql,callback)=>{
  return sqlQuery(sql)
}
let selectBy = async(table,where,callback)=>{
    var _WHERE=‘‘;
    // var keys=‘‘;
    // var values=‘‘;
    for(var k2 in where){
        _WHERE+=k2+"=‘"+where[k2]+"‘ AND ";
      //_WHERE+= k2+"=‘"+where[k2]+"‘";
    }
    _WHERE=_WHERE.slice(0,-5)
    // UPDATE user SET Password=‘321‘ WHERE UserId=12
    //update table set username=‘admin2‘,age=‘55‘   where id="5";
    var sql="SELECT * FROM "+table+‘ WHERE ‘+_WHERE;
   // console.log(sql);
    return sqlQuery(sql)
}
// 插入一条数据
let insertData =async (table,datas,callback)=>{
  var fields=‘‘;
  var values=‘‘;
  for( var k in datas){
      fields+=k+‘,‘;
      values=values+"‘"+datas[k]+"‘,"
  }
  fields=fields.slice(0,-1);
  values=values.slice(0,-1);
 // console.log(fields,values);
  var sql="INSERT INTO "+table+‘(‘+fields+‘) VALUES(‘+values+‘)‘;
  return sqlQuery(sql)
}

/**
 * 更新一条数据
 * @param {*} table 数据表名
 * @param {*} sets 更新字段
 * @param {*} where 限制条件
 */
let updateData=async function(table,sets,where){
    var _SETS=‘‘;
    var _WHERE=‘‘;
    var keys=‘‘;
    var values=‘‘;
    for(var k in sets){
        _SETS+=k+"=‘"+sets[k]+"‘,";
    }
    _SETS=_SETS.slice(0,-1);
    for(var k2 in where){
        _WHERE+=k2+"=‘"+where[k2]+"‘ AND ";
      //_WHERE+= k2+"=‘"+where[k2]+"‘";
    }
    _WHERE=_WHERE.slice(0,-5)
    // UPDATE user SET Password=‘321‘ WHERE UserId=12
    //update table set username=‘admin2‘,age=‘55‘   where id="5";
    var sql="UPDATE "+table+‘ SET ‘+_SETS+‘ WHERE ‘+_WHERE;
   // console.log(sql);
    return sqlQuery(sql)
}

// 删除一条数据
let deleteData=function(table,where,callback){
    var _WHERE=‘‘;
    for(var k2 in where){
       _WHERE+=k2+"=‘"+where[k2]+"‘ AND ";
      //_WHERE+= k2+"="+where[k2];
    }
    _WHERE=_WHERE.slice(0,-5)
    // DELETE  FROM user WHERE UserId=12  注意UserId的数据类型要和数据库一致
    var sql="DELETE  FROM "+table+‘ WHERE ‘+_WHERE;
   // connection.query(sql,callback);
    return sqlQuery(sql)
}

let sqlQuery=function(sql){
  return new Promise((resolve,reject)=>{
    connection.query(sql,(err,result)=>{
      if(err){
          console.log(‘错误信息-‘,err.sqlMessage);
          let errNews = err.sqlMessage;
          reject(errNews)
      } else{
        resolve(result)
      }
    })
  })
}
module.exports = {
  selectAll,
  selectBy,
  insertData,
  deleteData,
  updateData,
}

mysql帮助类

3、创建api文件,调用mysql数据库

let util = require(‘../utils/util‘)
const db = require(‘../mysql/mysql.js‘)
var logger = require(‘log4js‘).getLogger("index");
let util_http = require(‘../utils/util_http‘)

module.exports = {

    /**
     * 根据数据表名查询全部
     */
    ‘GET /mysql/findAll‘: async (ctx, next) => {
        ctx.response.type = ‘application/json‘;

        let table = ctx.request.query.table
        let sql = `select * from ${table}`
        await db.selectAll(sql).then(res => {
            ctx.body = util.res(res)
        }).catch(err => {
            ctx.body = util.err(err)
        })
    },
    /**
     * 根据数据表名和指定查询条件查询
     */
    ‘GET /mysql/findBy‘: async (ctx, next) => {
        ctx.response.type = ‘application/json‘;
        ctx.append(‘Access-Control-Allow-Origin‘, ‘*‘)
        let table = ctx.request.body.table
        let where = ctx.request.body.where
        await db.selectBy(table, where).then(res => {
            ctx.body = util.res(res)

        }).catch(err => {
            ctx.body = util.err(err)
        })
    },
    /**
     * 根据数据表名和id查询
     */
    ‘GET /mysql/findById‘: async (ctx, next) => {
        ctx.response.type = ‘application/json‘;
        ctx.append(‘Access-Control-Allow-Origin‘, ‘*‘)
        let table = ctx.request.query.table
        let id = ctx.request.query.id
        let sql = `select * from ${table} where id=‘${id}‘`
        await db.selectAll(sql).then(res => {
            ctx.body = util.res(res)

        }).catch(err => {
            ctx.body = util.err(err)
        })
    },

    /**
     * 添加数据
     */
    ‘POST /mysql/add‘: async (ctx, next) => {
        // ctx.response.type = ‘application/json‘;
        // ctx.res.header(‘Access-Control-Allow-Origin‘, ‘*‘);

        if (ctx.req.method == ‘POST‘) {
            let data = await util_http.getPOSTRes(ctx.req)
            data = JSON.parse(data)
            let table = data.table
            let params = data.params
            await db.insertData(table, params).then(res => {
                ctx.body = util.res(res)
            }).catch(err => {
                ctx.body = util.err(err)
            })
        } else {
            ctx.body = util.err(‘请求错误‘)
        }

    },
    /**
     * 更新数据
     */
    ‘PUT /mysql/update‘: async (ctx, next) => {
        if (ctx.req.method == ‘PUT‘) {
            let data = await util_http.getPOSTRes(ctx.req)
            data = JSON.parse(data)
            let table = data.table
            let sets = data.sets
            let where = data.where
           // console.log(‘sql‘, table, sets, where)
            await db.updateData(table, sets, where).then(res => {
                ctx.body = util.res(res)
            }).catch(err => {
                ctx.body = util.err(err)
            })
        } else {
            ctx.body = util.err(‘请求错误‘)
        }
    },
    // /**
    //  * 更新数据
    //  */
    // ‘PATCH /mysql/patch‘: async (ctx, next) => {
    //     // ctx.response.type = ‘application/json‘;
    //     console.log(‘patch init‘)
    //     ctx.body = ‘2222‘
    //     //ctx.body=util.res(‘123‘)
    //     // console.log(‘request‘,ctx.request)
    //     // let table = ctx.request.body.table
    //     // console.log(‘table‘,table)
    //     // let sets = ctx.request.body.sets
    //     // let where = ctx.request.body.where
    //     // await db.updateData(table, sets, where).then(res => {
    //     //     ctx.body = util.res(res)
    //     // }).catch(err => {
    //     //     ctx.body = util.err(err)
    //     // })
    // },
    /**
     * 删除数据
     */
    ‘DELETE /mysql/delete‘: async (ctx, next) => {
        let table = ctx.request.body.table
        let where = ctx.request.body.where
        await db.deleteData(table, where).then(res => {
            ctx.body = util.res(res)
        }).catch(err => {
            ctx.body = util.err(err)
        })
    },
    /**
     * 根据数据表名和id删除数据
     */
    ‘DELETE /mysql/deleteById‘: async (ctx, next) => {
        ctx.response.type = ‘application/json‘;
        ctx.append(‘Access-Control-Allow-Origin‘, ‘*‘)
        let table = ctx.request.query.table
        let id = ctx.request.query.id
        let where = {
            id: id
        }
        await db.deleteData(table, where).then(res => {
            ctx.body = util.res(res)
        }).catch(err => {
            ctx.body = util.err(err)
        })
    }
};

mysql 数据库操作

git地址:https://github.com/wuyongxian20/node-api.git

更多详细参考下篇node.js接口调用示例

原文地址:https://www.cnblogs.com/eye-like/p/11743662.html

时间: 2024-11-09 07:52:38

node.js 调用mysql 数据库的相关文章

Node.js连接MySQL数据库及构造JSON的正确姿势

做一下整理,以前也很随意的引入包链接数据库,后来发现常常连接出问题,异常退出,后来使用在网上一个方法解决问题,网址由于书签丢失,抱歉不能引用了.再有就是简单的模块化下,使得目录合理点,再有就是说明一下,标题有赚眼球的嫌疑,代码我这里使用正常,而且我觉得也蛮好用,不过不代表真的就是该这么写,毕竟我还是个node菜鸟,大神路过有更好的方式方法,还请留下脚印,感激不尽! Node版本:v0.10.34 Express版本:4.9.0 在继续进行之前,假设你搭建的本地环境已经可以看到这个界面: ----

node.js操作mysql数据库之增删改查

安装mysql模块 npm install mysql 数据库准备 mysql server所在的机器IP地址是192.168.0.108,登录账户就用[email protected] 在mysql中创建test数据库 在test数据库中创建一张users表 操作 连接数据库 var mysql=require('mysql'); var connection = mysql.createConnection({ host : '192.168.0.108', user : 'root', p

node.js与mysql数据库的交互

我们已经建好了数据库也建好了表,现在我们想查询数据库表中的内容,应该怎么做呢? 代码如下: var mysql = require('mysql'); //导入mysql包模块 var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : '123456', port: '3306', database: 'reji' }); //创建一个connection connection.

node.js连接MySQL操作及注意事项

node.js作为服务端的js运行环境已经出现了有几年了,最近我有个朋友也在做这方面的开发,但是也是刚刚接触,遇到了很多坑.前几天他们在操作数据库的时候出现了点问题,后来我们一起看了看,其实都是node本身机制的一些问题,这里总结一下给新手做借鉴. 我朋友的数据库采用的是MySQL.(至于为什么不用mongoDB,这个是公司上层选型的结果,因为很多新手朋友似乎总是觉的node.js就是应该和mongoDB联系在一起,所以这里简单说下).我后来写了一个简单的小例子,整个小例子使用了express框

Node.js连接Mysql,并把连接集成进Express中间件中

引言 在node.js连接mysql的过程,我们通常有两种连接方法,普通连接和连接池. 这两种方法较为常见,当我们使用express框架时还会选择使用中间express-myconnection,可以单独对mysql配置,也可以把connection集成到express中间件中. 最后送上一个node.js 连接各种主流数据库示例代码. 前提条件 1.安装mysql对应的驱动,npm install mysql 2.安装第三方插件express-connection, npm install e

node.js连接mysql

第一步 到node.js官网 下载相对应的node.js版本 通用的傻瓜式安装,下一步下一步即可 第二步 开始node.js 初体验 新建一个文件命名为  hello.js 内容如下 var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World node.js \n'); }).

node.js 连接 mysql

var mysql = require("mysql"); var connection = mysql.createConnection({ host: '127.0.0.1', user: "root", //数据库用户名 password: "12345", //数据库密码 database: "test", //数据库 port: '3306' //端口号 }); connection.connect(function

Linux下otl调用MySQL数据库

整体流程结构 otl用头文件otlv4.h来声明接口,具体实现在linux下是由unixODBC来实现:通过FreeTDS驱动最终调用MySQL的DBMS(个人观点) 要安装的软件及步骤 所以要安装的有unixODBC,FreeTDS 具体安装参考:http://wenku.baidu.com/view/89e9e711a2161479171128de.html(此文章里面的设置有问题,参考本文中的"关于odbcinst.ini和odbc.ini的说明一节") 关于odbcinst.i

使用shell脚本调用mysql数据库存储过程,并设置定时任务

本来是要mysql数据库中创建事件任务来,定时执行存储过程,做数据传输的...后来由于种种原因,就使用crontab来定时执行,调用存储过程. 实现这个数据传输分为两步: 第一步:编写shell脚本调用mysql数据库存储过程,如下: #!/bin/bash#0 1 * * * sh /home/drmTrans3/rj_proc.shhost1=127.0.0.1user=systempasswd=linuxport=3306mysql -h${host1} -u${user} -p${pas