小编Hli*_*nov的帖子

TypeError [ERR_UNESCAPED_CHARACTERS] 请求路径包含未转义的字符

我正在使用来自以下 URL 的传入 HTTP 请求处理 Ubuntu:

http://<MY-IP>:3000/v1/projects/list

描述: 问题是我在终端中收到以下错误:

TypeError [ERR_UNESCAPED_CHARACTERS]: Request path contains unescaped characters
at new ClientRequest (_http_client.js:127:13)
at Object.request (https.js:300:10)
at Request.start (/home/dev/grem-api-dev/apiv3/node_modules/request/request.js:751:32)
at Request.end (/home/dev/grem-api-dev/apiv3/node_modules/request/request.js:1512:10)
at end (/home/dev/grem-api-dev/apiv3/node_modules/request/request.js:564:14)
at Immediate._onImmediate (/home/dev/grem-api-dev/apiv3/node_modules/request/request.js:578:7)
at processImmediate(timers.js:632:19)
Run Code Online (Sandbox Code Playgroud)

在此错误节点进程从终端消失后(但仍在工作并且 API 响应已正确发送),尽管我看不到它是否正常工作(附上图片)。因此,与节点进程交互的唯一方法是执行类似ps aux | grep node或的操作ps T并手动终止进程。

假设错误意味着我找到了出现错误的适当代码片段 (request.js:751:32)。这里是:

  try {
    self.req = self.httpModule.request(reqOptions)
  } catch (err) {
    self.emit('error', err)
    return
  }
Run Code Online (Sandbox Code Playgroud)

我遇到的唯一解决方案是注释self.emit('error', err)代码行,这显然与最佳实践相去甚远。

事实是相同的代码可以在具有相同组件版本的其他计算机(Ubuntu、Windows)上运行,并且不会发生错误。此外,像 http:// myIp :3000/v1/community/list这样的 API 端点也可以在所有设备上正常工作。

这是我的组件版本:

  • npm — 6.5.0, …

node.js npm express ubuntu-16.04

22
推荐指数
1
解决办法
2万
查看次数

标签 统计

express ×1

node.js ×1

npm ×1

ubuntu-16.04 ×1