Node.js 节点快速路由中的HTTPS请求

Node.js 节点快速路由中的HTTPS请求,node.js,express,routes,http-get,Node.js,Express,Routes,Http Get,我试图在node express中的路由中获取https请求的结果,但失败的原因是:connect ETIMEOUT。知道我错在哪里吗 router.get("/", async (req, res) => { try { result = await https.get('https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY'); console.log(result); res.send(result);

我试图在node express中的路由中获取https请求的结果,但失败的原因是:connect ETIMEOUT。知道我错在哪里吗

router.get("/", async (req, res) => {
  try {
    result = await https.get('https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY');
    console.log(result);
    res.send(result);
  }
  catch (err) {
    console.log(err);
  }
});
编辑: URL是有效的,粘贴到浏览器中时会返回一些内容

我的API中的其他端点工作正常,但它们没有http请求思想。它们看起来像这样,即:

router.get("/", (req, res) => {
  try {
    res.sendFile("\\\\abc.local\\a$\\b$\\xyz\\001-005-877.pdf");
  }
  catch (err) {
    res.status(500).json({ err: err.toString() });
  }
});
编辑: 完成时: 我的index.js/routing(app.use(“/test”,require(“/routes/test”))中有一个输入错误,导致超时。 然后使用以下代码:

router.get("/", (req, res) => {
  request('https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY', function (error, response, body) {
    console.log('error:', error);
    console.log('statusCode:', response && response.statusCode);
    console.log('body:', body);
  })
});

我使用了“请求”模块。正如Dijkstra所建议的,尽管他的代码(用于快速默认http请求)对我不起作用,但他仍然提供了解决问题所需的一切,所以谢谢。

我相信这不是
https.get()
的工作方式。文档是

可能的实施:

router.get("/", async (req, res) => {
  https.get('https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY', (result) => {
    console.log('statusCode:', res.statusCode);
    console.log('headers:', res.headers);

    const data = '';
    result.on('data', function (chunk) {
      body += chunk;
    });

    result.on('end', () => {
      res.send(JSON.parse(data));
    });
  }).on('error', (e) => {
    console.error(e);
  });
});

执行这种典型任务的代码相当复杂。这就是为什么有流行的包来处理幕后所有复杂部分的原因。我更喜欢使用。

该URL是否返回数据??尝试在浏览器或邮递员中点击相同的URL,看看它是否返回任何内容!是的,URL有效并且确实返回数据。尝试请求package我尝试了你的代码,但仍然超时。谢谢你,我会再次阅读文档并安装request。我会在request中尝试并报告。request也是如此……我做错了什么?我相信你的api端点有问题。其他端点在我的api中工作正常,但它们没有http但是请求。路由中有一个错误,这就是为什么其他路由有效而此路由无效的原因。它仍然没有按预期工作,但至少我现在有一些工作要做。谢谢您的帮助。