Node.mysql

mysql为常用数据库,下面简单记录在nodejs中操作mysql数据库的简单实现。

环境:

nodejs4.2.2

mysql5.7.12

win7

参考资料:

npm mysql

代码


var mysql=require("mysql");var conn = require(‘../../config/conn.json‘);
var mysqlHander = module.exports;

/***
 * 数据库连接配置信息
 */
var pool = mysql.createPool({
    host: conn.mysql.houstName,
    user: conn.mysql.userName,
    password: conn.mysql.userPassword,
    database: conn.mysql.dbName,
    port: conn.mysql.hostPort
});

/**
 * mysql数据连接池
 * @param sql
 * @param callback
 */
var query = function(sql,param,callback){
    if(param === undefined){
        pool.getConnection(function(err,conn){
            if(err){
                callback(err,null,null);
            }else{
                conn.query(sql,function(qerr,vals,fields){
                    //释放连接
                    conn.release();
                    //事件驱动回调
                    callback(qerr,vals,fields);
                });
            }
        });
    }else {
        pool.getConnection(function(err,conn){
            if(err){
                callback(err,null,null);
            }else{
                conn.query(sql,param,function(qerr,vals,fields){
                    //释放连接
                    conn.release();
                    //事件驱动回调
                    callback(qerr,vals,fields);
                });
            }
        });
    }

    pool.on(‘error‘,handleError);
};

/**
 * 连接异常退出 打开新的连接
 * @param err
 */
function handleError (err) {

    console.log(‘数据访问异常退出...正在尝试重新建立连接‘);
    if (err) {
        // 如果是连接断开,自动重新连接
        if (err.code === ‘PROTOCOL_CONNECTION_LOST‘) {
            connect();
            console.log(‘尝试重新打开连接...‘);
        } else {
            console.error(err.stack || err);
            console.log(‘尝试重新建立连接失败!请检查数据访问,文件位置:‘+ __dirname);
            console.log(err);
        }
    }
}

/**
 * 数据操作
 * @param callBack
 */
mysqlHander.query = function (callBack) {
    query(mysqlHander.sql,mysqlHander.param, function (err,rows,filed) {
        if(err) console.log(err);
        callBack(err,rows,filed);
    });
}
时间: 2024-11-13 01:09:33

Node.mysql的相关文章

node && mysql 结合使用

本文基于mac上的开发,node && mysql的简单结合使用. 一.搭建环境 到官网上下载对应自己电脑的相关的版本.然后启动mysql 在使用npm -v 检测本电脑是否安装了nodejs,如果没有就到node 官网下载相应的版本进行安装,下图是本机上安装的版本 使用npm进行项目的搭建,需要安装express和mysql,在创建好的目录中,执行npm install express mysql --save 这里的express暂时没有用上,可以不用安装 二.项目的结构 本项目是一个

Angularjs+node+Mysql实现地图上特定点的定位以及附加信息展示

注:本博文为博主原创,转载请注明出处. 在上一篇博文中主要讲述了如何利用AngularJs+Node+MySql构建项目,并实现地图上的多点标注,今天在这篇文章中,我们将在上一个项目的基础上,实现特定点的定位以及附加信息的展示.这样我们的项目就更加完善了,从宏观上看到每个点,从微观上分析每个点的不同.这种方法往往在大数据可视化方面很有效果. Angularjs+node+Mysql实现地图上的多点标注原文地址:http://www.cnblogs.com/DonaHero/p/5815595.h

node与mysql的相互使用————node+mysql

node与mysql的相互使用----node+mysql 为什么选node???因为我是个前端. 为什么选mysql???因为成熟,稳定,听说容易学. 一.mysql数据库: mysql下载和使用我这里不细说.东西挺多的. 先下个Navicat premium用于直观的操作数据库,让数据库看得见,摸得着. 建立链接(localhost:3306): 新建个数据库,命名为test1.(这名字有用的!) 数据库代码(点查询,可以编写代码): //创建一个表,表定义的数据包括:Id,name,url

程序员的一天vue+node+mysql(一)

公司要做一个报表系统,这几天要出一个demo,从这篇博客开始我会把整个过程记录下来,摸着石头过河,有兴趣的可以从头看一看. 开发思路 1.前端 vue-cli+webpack+element UI 2.后台nodejs+express 3.数据库 mysql 客户端 navicat 前端 1.搭建vue-cli脚手架(node和npm安装方法请自行百度,我这里用的淘宝的映射) 进入项目文件 然后执行cnpm install 把依赖拉下来 目录结构如下 然后项目文件夹下执行 cnpm run de

Angularjs+node+Mysql实现地图上的多点标注

注:本文适合对于node有一定基础的人,如果您是小白,请先用1个小时学习node.node文档https://nodejs.org/en/docs/ 该片博文的源码地址:https://github.com/zhangxy1035/Gould 一.项目介绍 近几年,在大数据的驱动下,数据可视化变的越来越重要,其中现在比较火的就是地理位置可视化,在这篇文章中,将使用node作为服务器,angularjs作为前台显示,mysql作为数据库,实现地图上的多点标注.系统架构建设简单,可复用性高. 在这里

node mysql 部分中文文档

这基于是node-mysql官方文档的部分中文翻译,由于最近要在nodejs上使用mysql,看文档的时候顺带把这个文档部分翻译了,无责任翻译,不齐全也可能有些地方不对,不好勿喷. node-mysql 项目地址 我的博客 安装 安装稳定版本: $ npm install mysql 安装最新版本: $ npm install felixge/node-mysql 介绍 这是一个用Javascript编写的Node.js链接Mysql数据库的驱动模块. 建立连接 建立连接的一种推荐方法: var

vue+node+mysql学习笔记

1.创建数据库 create database vueBlog; use vueBlog; /*创建管理员表,用于后台登录,字段为管理员编号(自增长).账号.密码.登录时间*/ create table if not exists admin ( id int auto_increment primary key, name varchar(20) not null, password varchar(50) not null, loginTime varchar(50) not null );

node mysql es6/es7改造

本文js代码采取了ES6/ES7的写法,而不是commonJs的写法.支持一波JS的新语法.node版本的mysql驱动,通过npm i mysql安装.官网地址:https://github.com/mysqljs/mysql我们使用了连接池(为什么要使用连接池?性能啊),官网上说明有2种连接池的使用方式:pool.query()pool.getConnection();区别是什么,网上的说法:大部分时间用 pool.query 就行了,当有些操作需要保证是同一 connection 的时候,

vue+node+mysql

准备工作 安装node,这是必须的 新版node自带npm,安装Node.js时会一起安装,npm的作用就是对Node.js依赖的包进行管理,也可以理解为用来安装/卸载Node.js需要装的东西.验证是否安装成功: 推荐windows下终端工具:cmder npm安装vue-cli 使用npm下载依赖包是可能有些慢,所以这里可以换上淘宝的镜像cnpm. 打开终端(可以在任何位置),输入 npm install cnpm -g --registry=https://registry.npm.tao