【问题标题】:Sending http request in node.js在 node.js 中发送 http 请求
【发布时间】:2012-03-27 06:04:56
【问题描述】:

我正在尝试使用 node.js 向 neo4j 数据库发送 http 请求。这是我正在使用的代码:

var options = {
        host: 'localhost',
        port: 7474,
        path: '/db/data',
        method: 'GET',
        headers: {
            accept: 'application/json'
        }
    };

console.log("Start");
var x = http.request(options,function(res){
    console.log("Connected");
    res.on('data',function(data){
        console.log(data);
    });
});

我检查了数据库是否正在运行(我连接到管理网页并且一切正常)。恐怕问题不在数据库端,而是在 node.js 端。

我希望有人能对这个问题有所了解。我想学习如何在 node.js 中发送 http 请求,答案不必特定于 neo4j 问题。

提前致谢

【问题讨论】:

标签: http node.js request


【解决方案1】:

如果是简单的 GET 请求,应该使用http.get()

否则,http.request() 需要关闭。

var options = {
    host: 'localhost',
    port: 7474,
    path: '/db/data',
    method: 'GET',
    headers: {
        accept: 'application/json'
    }
};

console.log("Start");
var x = http.request(options,function(res){
    console.log("Connected");
    res.on('data',function(data){
        console.log(data);
    });
});

x.end();

【讨论】:

  • 当我对数据使用 JSON Parse 时,它​​给了我以下错误: SyntaxError: Unexpected end of JSON input at JSON.parse ()
  • 我的 JSON 对请求包有效。
  • 如果我向第三方 api 发出请求,这里的端口是什么
【解决方案2】:

我强烈建议您使用这个最小且简单的包在 nodejs 上发送请求

安装包

npm install smoothly-request

发送请求的代码

const smoothlyRequest = require('smoothly-request');

(async () => {
  const result = await smoothlyRequest({
      hostname: `http://localhost:7474`,
      path: '/db/data',
      method: 'GET'
  });
})();

【讨论】:

  • 为什么要在这么简单的任务上使用更多的依赖?
  • @OneEyedRaven 哪里有更多的依赖?有一个包封装了发送请求的逻辑。它使用基本的http模块。你只需要在那里添加配置
猜你喜欢
  • 2021-08-18
  • 2014-02-14
  • 2023-03-24
  • 1970-01-01
  • 2020-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多