如何通过NodeJS将对象传递给前端

Posted

技术标签:

【中文标题】如何通过NodeJS将对象传递给前端【英文标题】:How to pass object through NodeJS to FrontEnd 【发布时间】:2019-02-21 12:36:06 【问题描述】:

我确实尝试了其他在线解决方案,但我很糟糕,想要更好地理解,但我无法让它发挥作用:

我正在为后端设置一个 Web 应用程序并使用 NODe js,当有人向“/”发出获取请求时,我希望它从 SQL 中获取所有值,如下所示:

con.query('SELECT * FROM customers', function(err, result) 
res.json(result);

); 代码当有人向“/”发出get请求时:

//Home route
app.get('/', function(req, res)
    (sql funciton here)
   );
);

如何将“结果”变量传递给前端。:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>

  </body>
</html>

<script type="text/javascript">

  console.log(result);

</script>

我想要的只是打印出数组,但它说它未定义。

【问题讨论】:

您需要使用来自 javascript 的 AJAX 请求来调用该 Node.js api 并从服务器获取响应以在您的 UI 中使用该数据 好的,能给我个链接吗? 【参考方案1】:

您必须向服务器发出请求。为此,您可以使用axios 或浏览器fetch api。

axios.get("serverip/").then(res => 
   console.log(res)

【讨论】:

fetch和axios类似吗? 一个是第三方(axios)必须安装,另一个是内置(fetch) 你推荐哪一个?出于什么原因? serverip 将是 localhost:3000,调用看起来像 axios.get('localhost:3000').then(console.log) 你可以使用任何人,没有个人喜好。【参考方案2】:

要从服务器获取数据,您需要进行 API 调用。 XHR 或 XMLHttpRequest 也允许与服务器交互。

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() 
    console.log("API response  : ",xhttp.response);
;
var url = <API url>;    /*  http://localhost:3000 in your case  */
xhttp.open("GET", url, true);
xhttp.send();

请注意,如果 API 调用是从处理 API 的服务器(在您的情况下运行在 localhost:3000 的服务器)未呈现的 html 完成的,则会出现 CORS(跨源资源共享)问题,并且浏览器将阻止请求。

【讨论】:

以上是关于如何通过NodeJS将对象传递给前端的主要内容,如果未能解决你的问题,请参考以下文章

通过 const& 和 & 将对象传递给同一个函数

您可以使用 ctypes 通过其内存 id 将对象传递给 celery 任务吗?

C++ 将对象传递给函数

如何将对象传递给 innerHTML (JavaScript) 中的函数?

如何将对象传递给另一个数组对象

如何将对象传递给 C++ 中的函数?