【发布时间】:2021-07-16 12:01:52
【问题描述】:
我有下一个网址:
postgres://someuser:pas#%w#@rd-some-db.cgosdsd8op.us-east-1.rds.amazonaws.com:5432
我正在通过下一个方式解析它:
const url = require('url');
const { hostname: host, port, auth, path } = url.parse(bdUrl);
const [user, password] = auth.split(':');
失败并出现下一个错误:
const [user, password] = auth.split(':');
^
TypeError: Cannot read property 'split' of null
如果我从密码中删除特殊符号 (% #),一切正常。
【问题讨论】:
-
postgres://someuser:pas#%w#@rd-some-db.cgosdsd8op.us-east-1.rds.amazonaws.com:5432不是有效的 URL - 您需要encodeURIComponent("pas#%w#@rd") -
这能回答你的问题吗? Encode URL in JavaScript?
-
不,网址是硬编码的,没有特殊字符就可以完美运行。我也可以单独提取密码
标签: javascript node.js