【发布时间】:2012-04-25 02:27:22
【问题描述】:
我花了整整一夜的时间来弄清楚为什么我们的生产服务器有一个在我们的暂存服务器中遗漏的错误。而今天早上,我终于把范围缩小了,把它钉在了这段代码上:
url = [ database.protocol, '//' + database.host, database.port, ].join(':');
url = [ url, database.db ].join('/');
是的。这到底是怎么回事?好吧,在舞台上它显示:
http://:localhost:5984/fo
但在master中显示
http://:10.x.x.x:5984/fo (x is a number)
前者有效,后者无效。这就是我对 URL 的了解让我失望的地方。前者到底如何有效,而后者无效?
编辑:
需要明确的是,我认为这两个 URL 都应该是无效的,这是一个应该在我的登台服务器中捕获的错误。我只想知道为什么前一个 URL (:localhost) 被解释为有效,而后者不是。
【问题讨论】:
-
我认为问题出在
//之前的:,您可以通过简单的字符串连接来解决... -
您可能还会遇到防火墙/网络问题(在产品中通常比暂存更重要)一旦您的 URL 正确(即没有额外的 ':' 正如 Fong-Wan Chau 指出的那样) ,我建议你尝试使用命令行工具(甚至是telnet)连接到数据库,看看网络是否会让你通过。
-
是的,我的问题是为什么冒号 : 与“localhost”一起使用,而不是与 IP 地址一起使用。当然这是一个代码问题,但我只是好奇为什么它与“localhost”一起工作。 :S
标签: javascript url join