nodejs框架之Express错误:Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the clie

叁歲伎倆 2021-08-13 21:57 458阅读 0赞

错误代码:

(node:16292) UnhandledPromiseRejectionWarning: Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

【非常重要】错误原因:Express的

  1. res.send() res.json()这类客户端返回的方法仅返回一次,如果多次返回就会出现这个错误!

你的方法还api方法还是内部方法需要做一个判断,如果遇到错误才直接返回客户端,非错误,在内部方法是不能返回客户端的!

案例分享:

  1. static async deleteCodeFromRedis (res, phone_number, isApi = false) {
  2. let result = await ExpressBaseCRUD.expressRequestServerHandleCRUD(res,
  3. nodeAdminServerConfig.sms.delete_code_from_redis, {
  4. phone_number: phone_number,
  5. });
  6. console.log(`从redis删除手机号${phone_number}的验证码code成功`);
  7. // 如果是api访问,不管成功还是失败,直接返回客户端!
  8. if (isApi) {
  9. return OwnExpressResponse.resultSuccessOrFail(res,
  10. result, "code删除成功", "code删除失败");
  11. }
  12. return result || OwnExpressResponse.fail(res, "code删除失败");
  13. }

发表评论

表情:
评论列表 (有 0 条评论,458人围观)

还没有评论,来说两句吧...

相关阅读