node.js报错:Request path contains unescaped characters(url含有中文)(code: ‘ERR_UNHANDLED_REJECTION‘)

文章讲述了在遇到UnhandledPromiseRejection错误,特别是Requestpathcontainsunescapedcharacters时,如何通过添加try-catch块来捕获并解决该问题。解决方案是使用encodeURI函数对含有中文的请求路径参数进行编码,以避免HTTP请求错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 问题:

一开始没写try catch,报错如下:

[UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "#<Err>".] {
 code: 'ERR_UNHANDLED_REJECTION'
}

 

 经过我一部分一部分的注释代码调试,终于发现出问题的地方在哪了。

加上try catch后,打印出具体错误:

Request path contains unescaped characters这个错误翻译过来就是 “请求路径包含未转义字符” ,因为我的请求路径含有中文。

解决方法:encodeURI(‘处理的变量’);

例:let url = `http://localhost:3000/.....?cat=${encodeURI('欧美')}......`

参考文章:轻松决绝疑难杂症:nodejs使用http报错: Request path contains unescaped characters_大雄Obear的博客-CSDN博客

### 解决 YAML 文件中的 `yaml.scanner.ScannerError` 错误 当遇到 `yaml.scanner.ScannerError: while scanning a double-quoted scalar` 这类错误时,通常意味着 YAML 文件存在语法问题或者编码不兼容的情况。以下是几种常见的解决方案: #### 1. 检查双引号内的特殊字符 确保双引号内部没有任何非法字符或未转义的控制符。例如,在字符串中使用了未经转义的反斜杠或其他特殊字符可能会引发此错误[^1]。 ```python # 正确的做法是转义特殊字符 invalid_string = "This string contains an unescaped \"quote\"" valid_string = "This string correctly escapes the \\\"quote\\\"" ``` #### 2. 验证文件编码一致性 有时即使看起来正常的文本也可能因为不同的编码方式而出现问题。特别是中文环境下,默认使用的 GBK 编码可能导致与 UTF-8 不一致的问题。建议统一设置项目的默认编码为 UTF-8 并移除任何指定其他编码的地方[^3]。 #### 3. 审视 YAML 文档结构 确认整个文档遵循标准的缩进规则,并且没有意外地混入制表符(tab) 和空格(space),这二者在某些情况下会被视为不同含义从而破坏格式[^4]。 #### 4. 使用工具辅助排查 可以借助在线验证器来帮助定位具体哪一行出现了问题;另外也可以尝试简化配置文件逐步排除干扰项直到找到根源所在[^5]。 通过上述方法应该能够有效处理大多数由 `while scanning a double-quoted scalar` 引起的异常情况。当然每种情形的具体表现形式会有所差异,因此还需要结合实际情况灵活应对。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值