Node.js中调用mysql存储过程示例

 更新时间:2014年12月20日 09:42:21   投稿:junjie  
这篇文章主要介绍了Node.js中调用mysql存储过程示例,本文在windows环境测试通过,本文一并给出了创建数据库、录入数据、创建存储过程、调用存储过程等例子,需要的朋友可以参考下

例子仅在windows下测试通过,没有放在linux下测试。如有问题,可以电邮给我~

1、安装node.js、mysql,此处略(自行搜索吧)…;

2、创建一个名为test的数据库,然后建一张名为user_info的表(仅供测试)…

这里假定mysql使用的用户名为root,密码为123456

相应的mysql如下:

复制代码 代码如下:

/**
* 创建名为test的数据库
*/
DROP DATABASE IF EXISTS test;
CREATE DATABASE test;
USE test;
 
/**
* 创建user_info表
*/
DROP TABLE IF EXISTS `user_info`;

CREATE TABLE `user_info` (
  `userId` int(10) NOT NULL AUTO_INCREMENT,
  `userName` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`userId`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

/**
* 插入三条记录
*/
INSERT INTO user_info VALUES (NULL, '张一'), (NULL, '张二'), (NULL, '张三');

3、创建存储过程(写的很冗余,故意的… 正好学习一下语法>_<);

复制代码 代码如下:

DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`proc_simple`$$
CREATE PROCEDURE proc_simple(IN uid INT(10), OUT uName VARCHAR(2), OUT totalCount INT)
BEGIN

DECLARE str_name VARCHAR(20);

SET @str_name = '';
SET totalCount = 0;
        SELECT COUNT(1),userName INTO totalCount,@str_name FROM user_info WHERE userId = uid;       
        SET uName = @str_name;
        SELECT uName, totalCount;
       
    END$$
DELIMITER ;

4、写程序进行调用(假定存为名为sql.js的文件);

复制代码 代码如下:

/**
 * Created with JetBrains WebStorm.
 * User: Meteoric_cry
 * Date: 12-12-28
 * Time: 上午00:18
 * To change this template use File | Settings | File Templates.
 */
var mysql = require('mysql');

var connection = mysql.createConnection({
    host : 'localhost',
    port : 3306,
    user : 'root',
    password : '123456',
    database : 'test',
    charset : 'UTF8_GENERAL_CI',
    debug : false
});

connection.connect();

connection.query('CALL proc_simple(1, @a, @b);', function(err, rows, fields) {
    if (err) {
       throw err;
    }

    var results = rows[0];
    var row = results[0];
    console.log("userName:",row.uName, "  count:", row.totalCount);
});

connection.end();

5、运行示例程序;

相关文章

  • 利用node.js实现反向代理的方法详解

    利用node.js实现反向代理的方法详解

    在实际工程开发中,会有前后端分离的需求。为了平滑的完成前端请求到后端各个独立服务,需要一个中间件实现请求转发的功能,利用Nginx可以实现,在这里使用nodejs实现一个反向代理服务器。本文主要介绍了关于利用node.js实现反向代理的相关资料,需要的朋友可以参考下。
    2017-07-07
  • 如何使用Node.js判断png图片是否存在透明像素

    如何使用Node.js判断png图片是否存在透明像素

    这篇文章主要给大家介绍了关于如何使用Node.js判断png图片是否存在透明像素的相关资料,文中将实现的原理以及代码介绍的非常详细,需要的朋友可以参考下
    2021-08-08
  • nodejs教程之入门

    nodejs教程之入门

    本文是nodejs教程系列的入门篇,主要讲述nodejs的特点、模块机制/CommonJs(模块引用、模块定义、模块标识、模块实现)、包与NPM等知识,非常的详细,这里推荐给大家作为入门的文章。
    2014-11-11
  • 使用pm2运行node应用的流程步骤

    使用pm2运行node应用的流程步骤

    PM2是一个功能强大的进程管理工具,专为 Node.js 应用设计,它提供了进程管理、日志管理、负载均衡和性能监控等功能,帮助开发者轻松应对生产环境中的各种挑战,本文给大家介绍了使用pm2 运行node应用的流程步骤,需要的朋友可以参考下
    2024-03-03
  • Node.js Mongodb 密码特殊字符 @的解决方法

    Node.js Mongodb 密码特殊字符 @的解决方法

    在去年的 DB 勒索事件之后, 不少的同学开始加强 Mongodb 的安全性, 其中一种办法就是设置复杂的密码. 那么如果设置的密码里包含一些如 “@”, “:” 一样的特殊字符,怎么处理呢?下面小编给大家带来了Node.js Mongodb 密码特殊字符 @的解决方法,一起学习吧
    2017-04-04
  • node.js中的fs.rmdir方法使用说明

    node.js中的fs.rmdir方法使用说明

    这篇文章主要介绍了node.js中的fs.rmdir方法使用说明,本文介绍了fs.rmdir方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • NodeJS制作爬虫全过程(续)

    NodeJS制作爬虫全过程(续)

    本文是接上篇NodeJS制作爬虫全过程,是最上文的一个补充以及优化,给需要的小伙伴参考下
    2014-12-12
  • node.js实现的装饰者模式示例

    node.js实现的装饰者模式示例

    这篇文章主要介绍了node.js实现的装饰者模式,简单说明了装饰者模式的原理、功能并结合实例形式给出了node.js装饰者模式的实现方法,需要的朋友可以参考下
    2017-09-09
  • Node.js创建一个Express服务的方法详解

    Node.js创建一个Express服务的方法详解

    这篇文章主要介绍了Node.js创建一个Express服务的方法,结合实例形式分析了node.js创建Express服务的具体步骤、实现方法及相关操作技巧,需要的朋友可以参考下
    2020-01-01
  • nodejs更改项目端口号的方法

    nodejs更改项目端口号的方法

    今天小编就为大家分享一篇nodejs更改项目端口号的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05

最新评论