iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >浅谈NodeJs之数据库异常处理
  • 257
分享到

浅谈NodeJs之数据库异常处理

浅谈异常数据库 2022-06-04 17:06:59 257人浏览 八月长安
摘要

本文介绍了nodejs之数据库异常处理,分享给大家,具体如下: nodejs版本:4.4.4 数据库链接错误 使用nodejs处理异常最麻烦不过,这里我抛开nodejs提供的domain和一些第三方库专门处

本文介绍了nodejs数据库异常处理,分享给大家,具体如下:

nodejs版本:4.4.4

数据库链接错误

使用nodejs处理异常最麻烦不过,这里我抛开nodejs提供的domain和一些第三方库专门处理的东西。操作数据库是我们常用的功能。通过回调,我们这里会有很多err出没。

如下:


var pool = require('../db.js');
var runtimeLog = require('../log.js').getLogger('runlog');
var Promise = require('bluebird');

function queryPromise(queryString) {
  return new Promise(function(resolve, reject) {
    pool.getConnection(function(err, connection) {
    
      //connection.query(queryString, function(err, rows, fields) {
        
      // if (!err) {
      //   resolve(rows);
      //  } else {
      //   runtimeLog.error(err)
      //   reject(err)
      //  }
      // connection.release();
      //});
    })
  })
}

module.exports = function() {
  return new Promise(function(resolve, reject) {

    queryPromise("select * from wb123_home_map GROUP BY onestair")
      .then(function(results){
        resolve(results);

      })
      .catch(function(err){
        runtimeLog.error(err)
      })
  })
}

可以看到2个回调的地方都会有出错的可能。

并且这是一个模块,我们将它导出了。

这里我们故意将数据库链接的端口号填错,写成330666:


module.exports = {
  host:   '192.168.6.101',
  database: 'WEB123',
  user:   'root',
  passWord: 'passw0rd',
  protocol: 'Mysql',
  port:   '330666',
  query:  {pool: true}
}

这样的话,在我们链接数据库的时候是会出错的。

这里我们使用了promise,所以在导出的函数中,我们使用了catch,他会抓到queryPromise函数中的错误,并打印到日志中。


[2017-01-05 13:27:59.648] [ERROR] runlog - [err] [RangeError: port should be >= 0 and < 65536: 330666]
RangeError: port should be >= 0 and < 65536: 330666
...

数据库sql语句错误

我们修改一下代码,将数据库链接填对,修改sql语句为错误的语句。


var pool = require('../db.js');
var runtimeLog = require('../log.js').getLogger('runlog');
var Promise = require('bluebird');

function queryPromise(queryString) {
  return new Promise(function(resolve, reject) {
    pool.getConnection(function(err, connection) {
      
      connection.query(queryString, function(err, rows, fields) {
        //if (err) throw err;
        if (!err) {
          resolve(rows);
         } else {
          reject(err)
         }
        connection.release();
      });
    })
  })
}

module.exports = function() {
  return new Promise(function(resolve, reject) {

    queryPromise("select * from wb123_home_map GROUP BY onestairs")
      .then(function(results){
        resolve(results);

      })
      .catch(function(err){
        runtimeLog.error('[err]',err)
      })
  })
}

报错信息:


[2017-01-05 14:40:14.518] [ERROR] runlog - [err] { [Error: ER_BAD_FIELD_ERROR: Unknown column 'onestairs' in 'group statement']
 code: 'ER_BAD_FIELD_ERROR',
 errno: 1054,
 sqlState: '42S22',
 index: 0 }
Error: ER_BAD_FIELD_ERROR: Unknown column 'onestairs' in 'group statement'
  at Query.Sequence._packetToError (E:zzzz_wb123managetrunkcodenod
....

可以看到错误都是通过catch抛出。

所以如果使用了Promise我们可以直接在catch中抓到下面抛出的异常。不需要再去queryPromise函数中打日志异常了。

这里有一篇stackoverflow处理错误的非常有用的问答node-js-best-practice-exception-handling

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: 浅谈NodeJs之数据库异常处理

本文链接: https://www.lsjlt.com/news/12307.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 浅谈NodeJs之数据库异常处理
    本文介绍了NodeJs之数据库异常处理,分享给大家,具体如下: NodeJs版本:4.4.4 数据库链接错误 使用nodejs处理异常最麻烦不过,这里我抛开nodejs提供的domain和一些第三方库专门处...
    99+
    2022-06-04
    浅谈 异常 数据库
  • C++学习笔记之浅谈异常处理
    异常处理主要是针对能通过编译但是运行是在某个特定条件下会出现异常,程序崩溃,结果出错。来进行的东西 C++处理异常的机制是由3个部分组成的,即检查(try)、抛出(throw)和捕捉...
    99+
    2022-11-12
  • 浅谈Python的异常处理
    Python的异常处理能力是很强大的,可向用户准确反馈出错信息。在Python中,异常也是对象,可对它进行操作。所有异常都是基类Exception的成员。所有异常都从基类Exception继承,而且都在e...
    99+
    2022-06-04
    浅谈 异常 Python
  • NodeJs中怎么对数据库异常进行处理
    NodeJs中怎么对数据库异常进行处理,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。数据库链接错误使用nodejs处理异常最麻...
    99+
    2022-10-19
  • 浅谈几种Java自定义异常处理方式
    目录自定义异常类错误编码处理断言处理应用日志处理异常消息模板和格式化处理总结在Java中,异常是一种常见的处理机制。当程序运行出现错误时,Java会默认抛出一个异常,并通过栈回溯信息...
    99+
    2023-05-19
    Java自定义异常 Java 异常
  • 浅谈什么是SpringBoot异常处理自动配置的原理
    异常处理自动配置 ErrorMvcAutoConfiguration自动配置类自动配置了处理规则,给容器中注册了多种组件 errorAttributes组件,类型为DefaultEr...
    99+
    2022-11-12
  • 如何高效学习oracle数据库浅谈之一
    文章具体内容请移步如下链接:http://mp.weixin.qq.com/s__biz=MzIwMjU2MjI1OQ==&tempkey=sXhfnzfIdrymRA7B8csLCRQWvqPIs...
    99+
    2022-10-18
  • 浅谈一下mysql数据库底层原理
    1.数据库事务的基本特性。 原子性: 事务中的所有操作要么全部提交成功,要么全部失败回滚。 场景:UPDATE cs_user SET age = 18 , gender = '女' WHER&#...
    99+
    2023-04-20
    mysql数据库 mysql底层原理
  • 【DB究谈】浅谈对数据库隔离级别的理解
    当人们提及数据库管理系统(DBMS),必会提及事务、ACID特性以及事务隔离级别。事务本身是为了保证系统的运行状态最终将处于一致性(满足一组约束条件)的状态而出现的概念,其中的ACID特性中的I(Isolation)要保证在并发操作情况下数...
    99+
    2021-06-20
    【DB究谈】浅谈对数据库隔离级别的理解
  • 浅谈Python数据处理csv的应用小结
    目录题目代码运行实例题目 文件scores.csv包含十位学生的成绩单,表头是"姓名 语文 数学 英语"。请编程完成下述功能。1)计算每位学生的总分与排名,并将扩...
    99+
    2022-11-12
  • C语言入门之浅谈数据类型和变量常量
    目录1.变量的作用域:2.变量的生命周期:1.字面常量,如:100,‘v’;2.define宏定义的标识符常量3.const修饰的常变量4.枚举常量总结首先我...
    99+
    2022-11-12
  • 怎么处理MySQL数据库相关异常
    怎么处理MySQL数据库相关异常,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。  大家都明白,任何数据库在使用过程中,发生异常是不可避免的。下...
    99+
    2022-10-18
  • PHP与数据库异常处理的集成
    随着互联网技术的不断进步和发展,越来越多的应用程序需要与数据库进行交互。在这个过程中,异常处理是一个非常重要的环节。PHP是一种流行的Web开发语言,有许多数据库管理系统可以很好的与之集成。本文将探讨在PHP中如何进行数据库异常处理的集成。...
    99+
    2023-05-15
    数据库 PHP 异常处理
  • 浅谈Pandas dataframe数据处理方法的速度比较
    数据修改主要以增删改差为主,这里比较几种写法在数据处理时间上的巨大差别。 数据量大概是500万行级别的数据,文件大小为100M。 1.iloc iloc是一种速度极其慢的写法。这里我...
    99+
    2022-11-12
  • python数据分析实战指南之异常值处理
    目录异常值1、异常值定义2、异常值处理方式2.1 均方差2.2 箱形图3、实战3.1 加载数据3.2 检测异常值数据3.3 显示异常值的索引位置总结异常值 异常值是指样本中的个别值,...
    99+
    2022-11-13
  • 【Jetpack】使用 Room 中的 Migration 升级数据库异常处理 ( 多个数据库版本的迁移 | fallbackToDestructiveMigration() 函数处理升级异常 )
    文章目录 一、Room#Migration 迁移工具升级数据库二、多个数据库版本的迁移三、数据库异常处理 - RoomDatabase.Builder#fallbackToDestructiv...
    99+
    2023-09-13
    android sqlite Jetpack Room Migration 原力计划
  • PHP实现数据库集群异常处理的方法
    随着互联网的不断发展,越来越多的企业和组织开始规划数据库集群来满足其数据处理需求。数据库集群可能包含数百甚至数千个节点,因此在节点之间确保数据同步和协调非常重要。 在该环境下,存在着很多的异常情况,如单节点故障,网络分区,数据同步错误等,并...
    99+
    2023-05-15
    PHP编程 异常处理 数据库集群
  • 阿里云数据库服务器异常处理策略
    随着信息化进程的加速,数据库服务器的稳定运行已经成为企业信息化建设的基础保障。然而,无论是在开发阶段还是在生产环境中,数据库服务器都可能出现各种异常情况。本文将详细介绍如何处理阿里云数据库服务器异常,并给出具体的解决策略。 一、阿里云数据库...
    99+
    2023-12-13
    阿里 异常 策略
  • 浅析python常用数据文件处理方法
    0.前言 虽说python运行速度慢,但其编程速度,第三方包的丰富度是真的高。 涉及到文件批处理还是会选择python。 1. 动态文件名 在文件批处理中,文件名经常只有编号是不同的...
    99+
    2022-11-12
  • Spring访问数据库异常的处理方法是什么
    Spring访问数据库异常的处理方法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。使用JDBC API时,很多操作都要声明抛出java.sql.SQLExceptio...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作