尝试从nodeJS vagrant虚拟框运行以下curl命令。
localhost的IP地址 - 10.29.12.152
而且,我使用expressJS开发了列表API端点。
如果我在网络浏览器中运行上述API端点,它将从本地环境获得结果。
[
{
_index: "zeta-spot-cms",
_type: "documents",
_id: "AVmCw40nHO6bFVnpAj-5",
_score: 1,
_source: {}
}
]
尝试在vagrant虚拟框中使用此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虚拟框中提高curl命令以获取localhost的结果。
提前致谢!
答案 0 :(得分:0)
我很难理解你的确切要求,所以让我首先澄清一下 - 我将你的问题解释为你有一个Vagrant正在管理的虚拟机虚拟机,你有在该VM内运行的node.js应用程序。当您通过(主机系统)浏览器访问应用程序时,您将获得您期望的结果。但是当你尝试从VM内部使用curl
时,你得到了#34;没有主机的路由&#34;上面复制的错误。
假设这一切都是正确的,我认为答案很简单。我猜测虚拟机虚拟机不知道它的IP地址是10.29.12.152。因此,从VM内部运行的命令不知道如何到达该IP地址。根据您的描述,我不清楚该IP是否来自。
如果我的假设是正确的,你应该能够用127.0.0.1替换10.29.12.152并且该命令应该有效。
进一步的故障排除技术是在命令行上运行ifconfig
,并查看显示的IP地址。