使用javascript插入MySQL数据库

我目前正在做一个学校项目,我需要一些帮助。我在尝试将从另一个 IP 地址(使用 AJAX)读取的数据放入 MySQL 数据库时遇到了问题。我尝试使用 node.js,但是因为当我在网页上按下按钮时我正在调用该函数,所以它不起作用......所以关于如何使 node.js 工作的任何建议或提示。


阿贾克斯功能:


function AddShoots() {

  $.ajax({

    method: "POST",

    dataType: "json",

    url: "http://192.168.1.8",

    success: function (html) {

      for ($i = 0; $i < html.length; $i++) {

        console.log(html[$i]);

      }

    },

  });

}

我得到并想插入数据库的数据:

http://img1.mukewang.com/640c32e80001d0e113340114.jpg

GCT1015
浏览 176回答 1
1回答

慕森卡

听起来你有点混淆了你的技术。让我们先澄清几个术语:节点JS是用于服务器端或后端代码的JavaScript运行时。运行代码执行的环境,如NodeJS或 Web 浏览器。服务器端这是指在服务器上运行的代码。可以是 PHP、Java、Python 等……如果您使用的是 Node,甚至可以是 JavaScript。后端当人们说“后端”时,通常与“服务器端”的意思相同。前端在此上下文中,“前端”是指在 Web 浏览器中执行的代码。阿贾克斯一种 HTTP 请求样式,浏览器可以使用它来发送和获取数据而无需重新加载当前页面。既然我们已经解决了这个问题......Node 是 JavaScript 的服务器端运行时,因此在浏览器中运行的 JS 代码无法直接与 Node 代码通信。如果你想点击浏览器中的一个按钮并看到数据被写入你的数据库,你必须对你的后端正在监听的 url 进行 AJAX 调用(称为端点或路由)。从你的例子中解释你的意图有点困难,但我认为你的意思是发送一个 POST 到http://192.168.1.8.&nbsp;因此,您需要在 Node 应用程序中配置一个可以处理 AJAX 请求的路由,然后您可以从那里将数据写入数据库。当然,您还需要随请求传递数据。它与您的调用中的选项参数一起传递$.ajax(/* ... */)。在高层次上,这就是我相信你正在努力实现的目标:所以基本上你的应用应该至少有两个文件:index.html这将包含您的按钮以及从您的 Pi 获取数据的 JS 代码。这个“前端”JS 还必须向您的 Node 应用程序发送 AJAX 请求。app.js这将是您的 Node 应用程序。它必须公开一个端点,您的前端代码可以将数据发送到该端点。在该端点的函数内,您将负责将数据写入数据库。有一个名为 Express 的库可以帮助您创建端点。我建议遵循他们的入门指南:https ://expressjs.com/en/starter/installing.html更新我看到你用图表更新了你的答案。我假设您的心智模型可能正是那样,这就是您遇到困难的原因。例如,当用户访问诸如https://stackoverflow.com之类的 url 时,请求不会转到 Web 浏览器。请求必须首先通过服务器。当你使用 Node 时,你的应用本质上就是服务器,负责返回正确的响应。在您的情况下,响应将是一个 HTML 文件,index.html例如。那index.html就是网页,它将包含您的“前端”JavaScript 代码,它可以通过 HTTP 与您的 Raspberry Pi 服务器通信以获取您正在谈论的图像数据。在浏览器中运行的 JavaScript 无法直接与 SQL 数据库通信。所以你必须通过网络向你的节点服务发送请求。在您的后端应用程序中,您可以借助从 NPM 获得的包将数据写入 MySQL 数据库。这是一个例子: https:&nbsp;//www.npmjs.com/package/mysql更新 2听起来您更喜欢使用 PHP。您可以将 NodeJS 换成 PHP,而我的图表仍将代表您希望在较高层次上实现的目标。关键区别在于您不必弄清楚如何设置“路线”。使用 PHP,您可以只拥有一个名为以下内容的文件SaveMyData.php:<?php// Get the body of the POST request$data = file_get_contents('php://input');// Decode the JSON string so you can work with it in PHP$decodedData = json_decode($data);// $decodedData is now an array of the data you sent from the browserforeach($decodedData as $row) {&nbsp; // write the row to your database here}然后“端点”(对您如何为您的应用程序提供服务做出一些假设)是公正的,http://localhost:8080/SaveMyData.php它成为您从浏览器传递给 AJAX 调用的 URL。您的 AJAX 请求类似于:function AddShoots() {&nbsp; $.ajax({&nbsp; &nbsp; method: "POST", // the post to your Pi I'm assuming?&nbsp; &nbsp; dataType: "json",&nbsp; &nbsp; url: "http://192.168.1.8",&nbsp; &nbsp; success: function (data) {&nbsp; &nbsp; &nbsp; $.ajax({&nbsp; &nbsp; &nbsp; &nbsp; method: "POST", // this is going out to your PHP backend&nbsp; &nbsp; &nbsp; &nbsp; dataType: "json",&nbsp; &nbsp; &nbsp; &nbsp; url: "http://localhost:8080/SaveMyData.php",&nbsp; &nbsp; &nbsp; &nbsp; data: data,&nbsp; &nbsp; &nbsp; &nbsp; success: function (response) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // do stuff with the response if you'd like&nbsp; &nbsp; &nbsp; &nbsp; })&nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; },&nbsp; });}这里违反了大量“最佳实践”,但出于学校作业的目的,这应该让你指出正确的方向。
打开App,查看更多内容
随时随地看视频慕课网APP