解决 Express.js 中出现的 Cannot read property 'xxx' of null 错误

在使用 Express.js 进行开发时,我们经常会遇到 Cannot read property 'xxx' of null 错误,这是因为在处理请求时,我们没有对请求参数进行合理的判断和处理,导致出现了空值。

下面我们就来详细讲解如何解决这个错误。

问题分析

在 Express.js 中,我们经常需要获取请求参数,例如获取 GET 请求中的参数,代码如下:

------------ ----- ---- -- -
  ----- ----- - ----------------
  -- -- --------- ---- -----
---

这段代码中,我们通过 req.query.param 获取了 GET 请求中的 param 参数。但是如果请求中没有 param 参数,那么 req.query.param 就会返回 null,如果我们在后续代码中对 param 进行操作,就会出现 Cannot read property 'xxx' of null 错误。

解决方案

为了避免出现这种错误,我们需要对请求参数进行合理的判断和处理。

判断参数是否存在

在获取请求参数后,我们需要先判断参数是否存在,如果不存在,就给参数一个默认值。例如:

------------ ----- ---- -- -
  ----- ----- - --------------- -- -------- -------
  -- -- --------- ---- -----
---

这样,即使请求中没有 param 参数,param 也会有一个默认值。

判断参数类型

在获取请求参数后,我们还需要对参数类型进行判断,以避免出现类型错误。例如:

------------ ----- ---- -- -
  ----- ----- - ----------------
  -- ------- ----- --- --------- -
    -- ------ -----
  - ---- -
    -- -- --------- ---- -----
  -
---

这样,即使请求中的 param 参数类型不是字符串,也不会出现类型错误。

判断参数取值范围

在获取请求参数后,我们还需要对参数取值范围进行判断,以避免出现取值错误。例如:

------------ ----- ---- -- -
  ----- ----- - ----------------
  -- ------ --- -------- -- ----- --- --------- -
    -- ------ -----
  - ---- -
    -- -- --------- ---- -----
  -
---

这样,即使请求中的 param 参数取值不在指定范围内,也不会出现取值错误。

总结

在 Express.js 中,为了避免出现 Cannot read property 'xxx' of null 错误,我们需要对请求参数进行合理的判断和处理。需要判断参数是否存在、参数类型是否正确、参数取值范围是否正确等。只有这样,我们才能写出健壮的代码。

示例代码:

------------ ----- ---- -- -
  ----- ----- - --------------- -- -------- -------
  -- ------- ----- --- --------- -
    ------------------------- ----------
  - ---- -
    -- -- --------- ---- -----
  -
---

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65d2b086add4f0e0ffb01961