2017-01-10 51 views
0

嘗試從nodeJS流浪虛擬框運行以下curl命令。從vagrant nodejs中捲曲GET。無法從請求的服務器檢索請求的URL

IP地址爲本地主機 - 10.29.12.152

捲曲http://10.29.12.152:3002/api/v1/suggest/zeta-spot-cms/documents?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9CJyfw&term=xfinity

還有,我已經開發了使用expressJS列表API端點。

如果我在Web瀏覽器中運行上述API端點,它將從本地環境獲得結果。

[ 
{ 
_index: "zeta-spot-cms", 
_type: "documents", 
_id: "AVmCw40nHO6bFVnpAj-5", 
_score: 1, 
_source: {} 
} 
] 

試圖在流浪虛擬框中使用此API作爲curl命令。我有以下錯誤。

<div id="titles"> 
<h1>ERROR</h1> 
<h2>The requested URL could not be retrieved</h2> 
</div> 
<hr> 

<div id="content"> 
<p>The following error was encountered while trying to retrieve the URL: <a href="http://10.29.12.152:3002/api/v1/suggest/zeta-spot-cms/documents?">http://10.29.12.152:3002/api/v1/suggest/zeta-spot-cms/documents?</a></p> 

<blockquote id="error"> 
<p><b>Connection to 10.29.12.152 failed.</b></p> 
</blockquote> 

<p id="sysmsg">The system returned: <i>(113) No route to host</i></p> 

<p>The remote host or network may be down. Please try the request again.</p> 

你能否給我建議,我該如何在vagrant virtual box中提高curl命令來獲取localhost的結果。

在此先感謝!

回答

0

這對我來說確切地理解你的要求有點困難,所以讓我先澄清一下 - 我解釋你的問題意味着你有一個Vagrant正在管理的virtualbox虛擬機,並且你有一個node.js應用程序在該VM內運行。當你通過你的(主機系統)瀏覽器訪問應用程序時,你會得到你期待的結果。但是當您嘗試從VM內部使用curl時,您會收到上面複製的「無路由到主機」錯誤。

假設這是完全正確的,我認爲答案很簡單。我猜虛擬機虛擬機不知道它的IP地址是10.29.12.152。因此,從VM內部運行的命令不知道如何到達該IP地址。從你的描述來看,我不清楚這個IP是否來自於此。

如果我的假設是正確的,您應該能夠用127.0.0.1替換10.29.12.152,並且該命令應該可以工作。

進一步的故障排除技術將在命令行上運行ifconfig,並查看顯示的IP地址。

+0

感謝您的快速響應@Geoff Gerrietts,Nodejs應用程序未在virtualbox VM中運行。哪個在本地機器上運行(10.29.12.152)。我想在virtualbox VM中運行curl命令。如果我給127.0.0.1而不是IP地址,我得到了curl:(7)無法連接到主機錯誤。 – Anand

+0

其實,我想在另一個應用程序中調用這個API,這個應用程序正在虛擬機虛擬機中運行 – Anand

+0

而且我已經使用虛擬機中的ping命令進行了檢查。結果如下: PING 10.29.12.152(10.219.162.152)56(84)字節的數據。 來自10.29.12.152的64個字節:icmp_seq = 1 ttl = 63時間= 0.361 ms 從10.29.12.152開始的64個字節:icmp_seq = 2 ttl = 63時間= 0.296 ms – Anand