iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >NodeJs中怎么对数据库异常进行处理
  • 229
分享到

NodeJs中怎么对数据库异常进行处理

2024-04-02 19:04:59 229人浏览 独家记忆
摘要

nodejs中怎么对数据库异常进行处理,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。数据库链接错误使用nodejs处理异常最麻

nodejs中怎么对数据库异常进行处理,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

数据库链接错误

使用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:\zz\zz_wb123\manage\trunk\code\nod
....

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

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

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

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网node.js频道,感谢您对编程网的支持。

--结束END--

本文标题: NodeJs中怎么对数据库异常进行处理

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

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

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

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

下载Word文档
猜你喜欢
  • NodeJs中怎么对数据库异常进行处理
    NodeJs中怎么对数据库异常进行处理,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。数据库链接错误使用nodejs处理异常最麻...
    99+
    2022-10-19
  • 浅谈NodeJs之数据库异常处理
    本文介绍了NodeJs之数据库异常处理,分享给大家,具体如下: NodeJs版本:4.4.4 数据库链接错误 使用nodejs处理异常最麻烦不过,这里我抛开nodejs提供的domain和一些第三方库专门处...
    99+
    2022-06-04
    浅谈 异常 数据库
  • Spring Boot中怎么对异常进行处理
    今天就跟大家聊聊有关Spring Boot中怎么对异常进行处理,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。先谈谈“异常处理”这件事。下面有 2 份伪代码,对比下:// ① 基于 i...
    99+
    2023-05-31
    spring boot 进行处理 spring boo
  • Nodejs中怎么对错误进行处理
    今天就跟大家聊聊有关Nodejs中怎么对错误进行处理,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。假设我们有以下代码const net&n...
    99+
    2022-10-19
  • 怎么在Java项目中对异常进行处理
    本文章向大家介绍怎么在Java项目中对异常进行处理的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页...
    99+
    2023-06-06
  • 怎么在python中使用except对异常进行处理
    本篇文章为大家展示了怎么在python中使用except对异常进行处理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python有哪些常用库python常用的库:1.requesuts;2.scra...
    99+
    2023-06-14
  • 在Java子线程中怎么对异常进行处理
    这篇文章给大家介绍在Java子线程中怎么对异常进行处理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。常见错误也许有人会觉得,很简单嘛,直接在父线程启动子线程的地方try ... catch一把就可以了,其实这是不对的。...
    99+
    2023-05-31
    java 子线程 ava
  • nodejs中怎么对contact主数据进行修改
    本篇文章给大家分享的是有关nodejs中怎么对contact主数据进行修改,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来...
    99+
    2022-10-19
  • 怎么进行Oracle异常处理
    这篇文章给大家介绍怎么进行Oracle异常处理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、异常的优点      如果没有异常,在程序中,应当检查每个命令的成功...
    99+
    2022-10-18
  • flask中怎么对数据库进行管理
    小编给大家分享一下flask中怎么对数据库进行管理,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在flask框架里,有许多数据库需要我们频繁的处理,这样会造成很大...
    99+
    2023-06-14
  • 怎么处理MySQL数据库相关异常
    怎么处理MySQL数据库相关异常,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。  大家都明白,任何数据库在使用过程中,发生异常是不可避免的。下...
    99+
    2022-10-18
  • 使用nodejs怎么对tcp连接进行处理
    今天就跟大家聊聊有关使用nodejs怎么对tcp连接进行处理,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。int uv_tcp_listen(uv_tcp_t* ...
    99+
    2023-06-06
  • PHP中如何进行异常数据检测和处理?
    在编写PHP应用程序时,异常数据可能会在很多情况下出现。例如,用户提交的表单数据可能会包含不合法的输入,像特殊字符或过长的文本。在这种情况下,应该对异常数据进行有效的检测和处理,以避免安全漏洞或程序崩溃的发生。本篇文章将介绍PHP中如何进行...
    99+
    2023-05-22
    异常处理 数据检测 PHP
  • SpringBoot怎么进行统一异常处理
    这篇文章主要介绍“SpringBoot怎么进行统一异常处理”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot怎么进行统一异常处理”文章能帮助大家解决问题。1、处理前异常代码@ApiO...
    99+
    2023-06-29
  • 如何在Python中使用Selenium对异常进行处理
    这篇文章主要介绍了如何在Python中使用Selenium对异常进行处理,编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随编程网小编来看看吧!python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对...
    99+
    2023-06-06
  • matlab怎么对导入的数据进行处理
    在MATLAB中,可以使用各种函数和工具箱来处理导入的数据。以下是一些常用的数据处理方法:1. 数据清洗:使用函数如`isnan`、...
    99+
    2023-08-31
    matlab
  • C#中怎么对数据库进行访问
    今天就跟大家聊聊有关C#中怎么对数据库进行访问,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一.程序设计和运行环境是:微软公司视窗2000 专业版,.Net FrameWork SD...
    99+
    2023-06-17
  • Sqoop导入数据异常怎么处理
    这篇文章主要介绍“Sqoop导入数据异常怎么处理”,在日常操作中,相信很多人在Sqoop导入数据异常怎么处理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Sqoop导入数据异...
    99+
    2022-10-19
  • 怎么用批处理对MySQL进行数据操作
    本篇内容主要讲解“怎么用批处理对MySQL进行数据操作”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用批处理对MySQL进行数据操作”吧!批处理是一种非交互...
    99+
    2022-10-18
  • 使用python怎么对表格数据进行处理
    这篇文章给大家介绍使用python怎么对表格数据进行处理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python对Excel表格的处理首先我们看一个最简单的情况,我们先不考虑性能的问题,那么我们可以使用xlrd这个工...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作