【问题标题】:Node.JS Unable to call a service running on localhost on different portNode.JS 无法调用在不同端口上的 localhost 上运行的服务
【发布时间】:2019-02-14 04:30:00
【问题描述】:

我想要做的是我的应用程序在 localhost 的 3030 端口上运行 我已经写了这段代码

var request = require('request');

request("http://127.0.0.1:3000/showdb", function (error, response, body) {
    if(error)
        console.log("ERROR IS :"+error);

    if (!error && response.statusCode == 200) {
        console.log("body"+body) // Print the google web page.
        res.send(body);
    }
})

所以我正在调用在我的本地主机上的端口 3000 上运行的另一个应用程序服务。(本地主机的默认 IP 为 127.0.0.1)。但它不起作用,这个请求永远不会发出,并且错误输出“错误:解析错误”。 我的 3030 端口服务被成功调用,但在该服务中,该请求从未被调用。任何帮助将不胜感激。

这是此服务返回的 jason ("/showdb")

结果:[ { 名称:“桥藤”, sizeOnDisk: 486539264, 空:假 }, { 名称:“粗鲁”, sizeOnDisk: 218103808, 空:假 }, { 名称:“exascaleDb”, sizeOnDisk: 486539264, 空:假 }, { 名称:“本地”, sizeOnDisk: 83886080, 空:假 }, { 名称:“mydb”, sizeOnDisk: 218103808, 空:假 }, { 名称:“测试”, sizeOnDisk: 218103808, 空:假 }, { 名称:“winedb”, sizeOnDisk: 218103808, 空:假 } ]

【问题讨论】:

  • 你确定监听3000端口的服务真的在运行吗?
  • 是的,我 100% 确定它会运行并返回 jason 数据
  • 您正在输出一个错误。控制台中有什么东西吗?
  • 这就是控制台所说的“C:\Program Files\nodejs\node.exe” server.js 信息:socket.io 开始使用 URL 连接到 Mongo:mongodb://127.0.0.1/ exascaleDb 服务器启动于端口 3030 192.168.100.4 POST /loadDataBase 25 ms 200 ERROR IS :Error: Parse Error
  • 我看不懂最后两行,但是有一个错误,你应该检查一下。无论如何,这个错误来自在端口 3030 上运行的服务器的控制台。3000 上的那个呢。

标签: node.js express


【解决方案1】:

我怀疑解析错误发生在以下任何一行中:

    console.log("body"+body) // Print the google web page.
    res.send(body);

评论一个或另一个。将正文包裹在 JSON.stringify(body) 中。如果此问题修复,则意味着 3000 服务器正在发送 JSON,但您的行为就像是文本一样。

【讨论】:

  • 返回的正文不是正确的 jason 格式,这就是导致问题的原因。我更正了jason格式,问题消失了。
猜你喜欢
  • 1970-01-01
  • 2016-01-17
  • 1970-01-01
  • 2013-10-18
  • 2017-04-01
  • 1970-01-01
  • 2013-02-20
  • 1970-01-01
  • 2018-01-14
相关资源
最近更新 更多