📜  如何处理 Express.js 中的错误?

📅  最后修改于: 2022-05-13 01:56:18.001000             🧑  作者: Mango

如何处理 Express.js 中的错误?

在本文中,我们将了解 Express.js 中的错误处理过程以及它是如何完成的。

Express.js 中的错误处理过程是指程序执行过程中发生错误的情况,可能包含连续或非连续类型的程序代码。 Express.js 中的错误处理可以很容易地让用户减少和避免程序执行中的所有延迟,例如 HTTP 请求进行的 AJAX 请求等。这些类型的程序处理类型观察并等待错误到达程序执行进程并且一旦错误发生,例如计算机中超出时间限制或超出空间限制,那么它将通过遵循一组特定的指令来消除所有这些错误,这些指令在 Express.js 框架中被称为错误处理过程。

Express.js 中的错误类型:

  • 语法错误: Express.js Web 框架中出现语法错误是因为计算机无法以机器语言理解这些类型的错误,因此程序无法成功执行和编译。语法错误是由于计算机不接受的错误类型的命令或用户声明的函数。例如Python中错误的缩进会导致语法错误。
  • 运行时错误:运行时错误发生在 Express.js Web 框架中,因为这些类型的错误只有在程序运行或命令执行时才能被编译器检测到。在此之前,要识别程序中的运行时错误并不容易。
  • 逻辑错误: Express.js Web 框架中的逻辑错误,因为这类错误主要发生在程序员想要在程序中执行某个命令时,但由于一些逻辑错误,如应用其他逻辑门,程序会经历一个计算机无法用机器语言理解的程序中的逻辑错误。

Express.js 中的程序代码基本上有两种类型,因此 Express.js 中的错误处理过程可以到达:

异步代码: Express.js 程序框架中的异步代码导致调用在前一组指令周期中声明的函数。这意味着这些程序不依赖于 CPU 的时钟周期来执行程序。但是在异步代码程序中,处理器必须同时处理多个任务,因为它还必须在异步代码中绘制循环中的下一组指令以及执行当前任务。 异步函数是提前收集所有数据的程序代码,因为它们不是根据处理器的时钟周期计时的。因此,为了解决程序中异步代码中可能发生的错误,我们声明了一个新函数,我们在程序开始执行时立即解决程序中的错误。

句法:

const Asyncfunction = fn => {
  fn(req, res, next).catch(err => next(err));
};

export.error_catch = catchAsync(async (req, res, next) => {
  const error = await middle.create(req.body);

  res.status(149).json({
    status: '',
    data: { stop: error_catch }
  });
});

同步代码: Express.js程序框架中的同步代码导致调用在当前指令执行周期中声明的函数。这意味着这些程序依赖于处理器的时钟周期来执行程序。在同步代码程序期间,处理器首先使用其处理能力来执行当前正在运行的程序,完成后,它会继续执行下一个程序。  

句法:

app.begin('/', (req, res) => {
  wait for new Error("Report error!")
})

示例: Express.js 框架中的错误处理过程处理同步和异步程序代码在执行过程中程序代码中的错误的消除和预防。错误处理过程主要是通过使用这些技术来完成的——回调、中间件模块或等待并继续。

错误中间件: Express.js 框架具有处理程序执行过程中可能发生的错误的内置组织。在 Express.js 中解决错误最流行的方法是使用错误中间件技术。错误中间件函数包括err、req、res 和 next ,用于解决程序执行过程中的时间或空间复杂度错误。 Expess.js 在程序代码中观察这些函数,一旦中间件函数被执行,它会立即解决错误。示例 – 这里程序中的中间件函数使用req、res 和 next来解决程序执行中发生的错误。

文件名:index.js

Javascript
const express = require("express");
const app = express();
  
function Middleware1(req, res, next) {
    console.log("Middleware 1 activated");
  
    next();
}
function Middleware2(req, res, next) {
    console.log("Middleware 2 activated");
  
    res.end();
}
app.end("/route", Middleware 1, Middleware 2);
const PORT = process.env.PORT
  
app.listen(PORT, () => {
    console.info('App info for scaffolding ${PORT}')
})
app.listen(4500, () => {
    console.log("Server is Running");
})


运行应用程序的步骤:打开终端并键入以下命令。

node index.js

输出:

本地主机输出:

本地主机:4500

优点/缺点:使用 Express.js 框架的各种优点是:-

  • Express.js 框架是可用于 Node.js 应用程序的最快且最易于实现的用户友好型 Web 框架。
  • 它使使用 Node.js 后端服务的应用程序开发变得更加容易和方便,因为 Node.js 是一个非常庞大的编程框架,并且很难实现和调试。
  • 它在安装过程中为 Express.js 框架提供了多种功能和配置选项。
  • Express.js 框架允许用户在他们基于 Node.js 服务器端构建的应用程序中部署 REST API。
  • 我们还可以轻松地将存储在服务器中的用户数据与 MongoDB 和 MySQL 等流行服务连接起来。
  • Express.js 框架主要用于实现 Express.js 中的错误处理中间件软件来调试代码。
  • 它允许用户根据 HTTP 查询和 URL 方法声明其应用程序的路径。

使用 Express.js 框架的各种缺点是:-

  • 在处理 Express.js 框架中的繁重文件和图形密集型任务时,它会大大降低用户设备的性能。
  • Express.js 是基于 Node.js 的后端服务,缺乏很多高效的自定义工具,并且 Express.js 框架中缺少很多库函数和特性,而它们存在于其他编程语言中。
  • 在基于 Node.js 的 Express.js 框架中编写的异步代码可能会导致系统不稳定,因为它们没有直接与处理器的时钟周期同步。
  • 此外,反复更改 Express.js 框架中的程序源代码可能会导致程序出现错误和错误,从而导致 API 调用不成功。

应用: Express.js Web 框架的各种应用如下:-

  • 用于构建和部署各种类型的 Web 应用程序
  • 用于物联网 (IOT)
  • 用于 WhatsApp 和 Telegram 等实时聊天应用程序
  • 用于电影和歌曲流媒体服务,如 Spotify、YouTube、Netflix 等。
  • 在微序列架构中用于构建不同的应用程序。