添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
重情义的跑步鞋  ·  Regulatory ...·  3 周前    · 
乖乖的四季豆  ·  湖湘法学评论 | ...·  4 周前    · 

刚入门node.js的朋友可能不知道node.js操作mysql 是如何回调返回值得,我给你大家介绍介绍

简介和安装 测试MySQL 认识一下Connection Options MYSQL CURD 插入 更新 查询 删除 Nodejs 调用带out参数的存储过程,并得到out参数返回值 结束数据库连接两种方法和区别 连接池Pooling connections 创建 其它连接池配置选项 释放 使用示例 断线重连 其它…

Node.js与MySQL交互操作有很多库,具体可以在 https://www.npmjs.org/search?q=mysql 查看。

我选择了felixge/node-mysql,用的人比较多,先随大溜看看它的使用,暂时没有太过纠结于各库之间的执行性能问题,对其它库有研究的筒子也可以分享一下性能要求较高时的选择^_^!

地址: https://github.com/felixge/node-mysql
https://www.npmjs.org/package/mysql

安装
npm install mysql
安装mysql中间件

//设置连接数据库参数
var mq = require("mysql");
var db_conf = {
    host:'192.168.1.32',
    post:'3306',
    user:'test',
    password:'test',
    database:'opensips_news'
var conn;
//连接数据库
function handleDisconnect(){
    conn = mq.createConnection(db_conf);
    conn.connect(function(err){
        if(err)
        {//如果连接错误
           console.log('error when connecting to db:', err);  
           setTimeout(handleDisconnect, 2000);   
//监听数据库连接错误
conn.on('error',function(err){
       console.log('db error', err);
       if(err.code = 'PROTOCOL_CONNECTION_LOST')
        handleDisconnect();
        throw err;
handleDisconnect();//打开连接mysql
//查询 无回调
function getAllUser(id){
    var sql = 'select * from subscriber where id > '+ conn.escape(id);
    conn.query(sql,function(err,results){
         console.log(results);
         return results;//此处return没用 是没返回值的
 查询 有回调
 获得domain
 type默认domain
 value 默认为空
 var dataStr = JSON.stringify(results);将json对象装换成json数据
function getAlldomain(type,value,callback){
    var sql = 'select id,domain from domain ';
    var option = new Array();
    var dataStr= "";
    conn.query(sql,function(err,results){
        //处理查询结果
        if(results){
            for(var i = 0; i < results.length; i++)
                //option[i] = {'label':results[i].domain,'value':results[i].domain};
                //console.log(results[i].domain);
                option.push({'label':results[i].domain,'value':results[i].domain});
        callback(err, option);//回调函数返回option数组
 插入数据库 有回调函数 有返回值的
 新增用户 注册用户
 username:用户名
 domain:域名
 password:密码
 email_address:邮箱
function reg_user(datas,callback){
      //设置插入的值
      var post    = {
                                 username: datas.username, 
                                 password:datas.password,
                                 email_address:datas.email,
                                 ha1:"",
                                 ha1b:""
        var sql     = "insert into subscriber set ? ";//插入数据库的sql
        //新增用户,插入数据库
        var user_id = 0;
        var query = conn.query(sql,post,function(err,results){
                //处理返回的结果,如果新增用户成功
                if(results)
                    console.log(results);
                    user_id  = results.insertId;
                console.log('新增用户id:'+user_id);
                callback(err, user_id);//回调函数 返回user_id
        //console.log(query.sql);
    调用方法 获取查询后的值 需要用到回调函数
    callback = function(){};//回调函数
    getAlldomain('domain','',callback);
getAlldomain('domain','',function(err,results){
        //results为调用方法的回调的成功的返回值
        var datas = {};
        datas.domian       = results;
        result.status      = 1;
        result.data        = datas;
        res.send(result);
                                    问题描述:
我在操作mysql,插入数据时,关闭资源,PHP提示了一个warning。内容大致为,需要给mysql_free_result()一个资源类型。
然后,我将返回的结果var_dump($res),发现是bool值
看手册时,一眼看上去,觉得mysql_query()函数返回的本来就是资源类型,可是为什么现在又是bool值了呢?好吧,耐心看完手册,才发现,原理是这样的,如下图片:
总结:由上可以知道,mysql_query()执行sql语句时,并不是什么时候都要执行释放结果集,而是当某些操作产生了结果集,才调用mysql_free_result()释放;像insert  
                                    本文实例讲述了node.js连接mysql与基本用法。分享给大家供大家参考,具体如下:
下载mysql模块
使用命令npm install mysql下载mysql模块
mysql引入模块
var mysql = require(mysql);
创建连接池
使用createPool()创建一个mysql连接池,传入一个表参数作为连接信息
var pool = mysql.createPool({
  host:127.0.0.1,
  port:3306, //默认端口3306
  database:student, //需要连接的数据库
  user:root, //用
                                    NodeJS与MySQL连接返回的数据是[ RowDataPacket { xx: 'xx' } ]类型,该如何操作?如题,我在项目中遇到了这个问题,MySQL查询返回的内容是这样的。将类型转换为JSON再转换回来,这样就变成了下面的样子。这样就方便操作了,很明显是数组里面包换一个对象。但是这样的类型,不好操作,或者说表示不正确,
                                    mysqli_query($conn, $sql)函数的返回值类型发布时间:2020-10-16 17:39:28来源:亿速云阅读:114作者:Leah本篇文章给大家分享的是有关mysqli_query($conn, $sql)函数的返回值类型,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、mysqli_query($conn, $...
                                    小编典典这会有点分散,请原谅我。首先,假设此代码正确使用了mysql驱动程序API,这是将其包装为与本机promise一起使用的一种方法:function getLastRecord(name){return new Promise(function(resolve, reject) {// The Promise constructor should catch any errors throw...
                                    数据连接完成,剩下的就是前台的请求以及服务端接到请求后,对数据库的查询和结果数据的返回操作了。引入相关模块内容:const app = require(‘../root-router/appRouter‘);const mysqlConnection= require(‘../mysql/mysqlConnection‘);const tableName= require(‘../mysql/ta...
                                    由上可以知道,mysql_query()执行sql语句时,并不是什么时候都要执行释放结果集,而是当某些操作产生了结果集,才调用mysql_free_result()释放;看手册时,一眼看上去,觉得mysql_query()函数返回的本来就是资源类型,可是为什么现在又是bool值了呢?我在操作mysql,插入数据时,关闭资源,PHP提示了一个warning。本篇文章主要介绍mysql_query()函数的返回值详解,感兴趣的朋友参考下,希望对大家有所帮助。千万级数据并发如何处理?
                                    Node.js+MySQL开发的B2C商城系统源码(微信小程序端)。Node.js+MySQL开发的B2C商城系统源码(微信小程序端)。Node.js+MySQL开发的B2C商城系统源码(微信小程序端)。Node.js+MySQL开发的B2C商城系统源码(微信小程序端)。Node.js+MySQL开发的B2C商城系统源码(微信小程序端)。Node.js+MySQL开发的B2C商城系统源码(微信小程序端)。Node.js+MySQL开发的B2C商城系统源码(微信小程序端)。Node.js+MySQL开发的B2C商城系统源码(微信小程序端)。Node.js+MySQL开发的B2C商城系统源码(微信小程序端)。Node.js+MySQL开发的B2C商城系统源码(微信小程序端)。Node.js+MySQL开发的B2C商城系统源码(微信小程序端)。Node.js+MySQL开发的B2C商城系统源码(微信小程序端)。Node.js+MySQL开发的B2C商城系统源码(微信小程序端)。Node.js+MySQL开发的B2C商城系统源码(微信小程序端)。Node.js+MySQL开发的B2C商城系统源
                                    Node.js MySQL UPDATE 查询Node.js MySQL UPDATE 更新表查询您可以使用MySQL UPDATE查询更新表的记录。MySQL更新record(s)表MySQL更新表的所有记录Node.js MySQL Update 更新表记录考虑到由于人为错误,在students表中插入的记录标记为74而不是84。现在,我们将执行一个MySQL更新查询,该更新更新的marks列...