Node.js 节点引用错误:未为api调用定义响应

Node.js 节点引用错误:未为api调用定义响应,node.js,Node.js,我刚开始学习node,在打印浏览器上的数据时遇到了问题。每当我转到url时,我都会收到此错误ReferenceError:未定义响应。我的问题是,如果你看下面的代码,看起来我已经定义了我的响应。请告诉我我做错了什么,这样我才能学习 const express = require("express"); const app = express(); const port = 3000; const url = "https://remotive.io/api/remo

我刚开始学习node,在打印浏览器上的数据时遇到了问题。每当我转到url时,我都会收到此错误ReferenceError:未定义响应。我的问题是,如果你看下面的代码,看起来我已经定义了我的响应。请告诉我我做错了什么,这样我才能学习

const express = require("express");
const app = express();
const port = 3000;
const url = "https://remotive.io/api/remote-jobs";
const request = require("request");

app.get("/home", (req, res) => {
  res.send("lets goooo");
});

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}/jobs`);
});

app.get("/jobs", function (req, res) {
  request(url, function (error, response, body) {
    if (!error && response.statusCode == 200) {
      console.log(body);
    }
  });
  res.send(response.body);
});
编辑了你的代码

const express = require("express");
const app = express();
const port = 3000;
const url = "https://remotive.io/api/remote-jobs";
const request = require("request");

app.get("/home", (req, res) => {
  res.send("lets goooo");
});

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}/jobs`);
});

app.get("/jobs", function (req, res) {
  request(url, function (error, response, body) {
    if (!error && response.statusCode == 200) {
      console.log(body);
    }
res.send(response.body);
  });
  
});

始终参考文档以了解任何技术、Node和express framework文档,

注意:由于Node.js生命周期是自动异步的。 这意味着在调用同步函数res.send()时,此函数将在请求函数之前被调用

来自第14行

app.get("/jobs", function (req, res) {
  request(url, function (error, response, body) {
    if (!error && response.statusCode == 200) {
      res.send(response.body);
    }
  });
});

res.send(response.body)
不在
request
的回调范围内,但
response
仅在该回调的主体内有效正常工作。你知道为什么当我在浏览器中打印时,我得到的数据与它的外观相比是错误的吗?它在console.log上打印得很好,但在浏览器中打印得不好。你能发送它打印的内容吗?我们怎么知道?我们既不知道你的数据应该是什么样子,也不知道你所说的坏样子是什么意思。这可能是因为你的res.send是response.body,而控制台日志只是body?就像derpirscher所说的,我们怎么知道呢?你应该解释你是如何(以及为什么)更改原始代码的。谢谢你的输入,我会这样做的。欢迎来到Stack Overflow!请澄清您试图实施的内容。如果您提出问题是为了找出代码的错误。此外,代码片段的第2行和第3行似乎可疑,因为Express没有request()回调,而且响应状态代码通常由回调设置,而不是在回调中读取。请务必查看我所指的问题片段的快速文档,我甚至在第14行中提到过用以下代码替换它。