如何通过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将对象传递给前端的主要内容,如果未能解决你的问题,请参考以下文章
您可以使用 ctypes 通过其内存 id 将对象传递给 celery 任务吗?