来自vagrant nodejs的Curl GET。无法从请求的服务器

时间:2017-01-10 14:19:45

标签: node.js curl vagrant

尝试从nodeJS vagrant虚拟框运行以下curl命令。

localhost的IP地址 - 10.29.12.152

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

而且,我使用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的结果。

提前致谢!

1 个答案:

答案 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地址。