亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用javascript插入MySQL數據庫

使用javascript插入MySQL數據庫

PHP
GCT1015 2023-03-11 15:50:11
我目前正在做一個學校項目,我需要一些幫助。我在嘗試將從另一個 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]);      }    },  });}我得到并想插入數據庫的數據:
查看完整描述

1 回答

?
慕森卡

TA貢獻1806條經驗 獲得超8個贊

聽起來你有點混淆了你的技術。

讓我們先澄清幾個術語:

節點JS

是用于服務器端后端代碼的JavaScript運行時。

運行

代碼執行的環境,如NodeJS或 Web 瀏覽器。

服務器端

這是指在服務器上運行的代碼??梢允?PHP、Java、Python 等……如果您使用的是 Node,甚至可以是 JavaScript。

后端

當人們說“后端”時,通常與“服務器端”的意思相同。

前端

在此上下文中,“前端”是指在 Web 瀏覽器中執行的代碼。

阿賈克斯

一種 HTTP 請求樣式,瀏覽器可以使用它來發送和獲取數據而無需重新加載當前頁面。

既然我們已經解決了這個問題......

Node 是 JavaScript 的服務器端運行時,因此在瀏覽器中運行的 JS 代碼無法直接與 Node 代碼通信。

如果你想點擊瀏覽器中的一個按鈕并看到數據被寫入你的數據庫,你必須對你的后端正在監聽的 url 進行 AJAX 調用(稱為端點或路由)。

從你的例子中解釋你的意圖有點困難,但我認為你的意思是發送一個 POST 到http://192.168.1.8. 因此,您需要在 Node 應用程序中配置一個可以處理 AJAX 請求的路由,然后您可以從那里將數據寫入數據庫。

當然,您還需要隨請求傳遞數據。它與您的調用中的選項參數一起傳遞$.ajax(/* ... */)。

在高層次上,這就是我相信你正在努力實現的目標:

http://img1.sycdn.imooc.com//640c32f80001758906590234.jpg

所以基本上你的應用應該至少有兩個文件:

  1. index.html這將包含您的按鈕以及從您的 Pi 獲取數據的 JS 代碼。這個“前端”JS 還必須向您的 Node 應用程序發送 AJAX 請求。

  2. 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: //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 browser

foreach($decodedData as $row) {

  // write the row to your database here

}

然后“端點”(對您如何為您的應用程序提供服務做出一些假設)是公正的,http://localhost:8080/SaveMyData.php它成為您從瀏覽器傳遞給 AJAX 調用的 URL。


您的 AJAX 請求類似于:


function AddShoots() {

  $.ajax({

    method: "POST", // the post to your Pi I'm assuming?

    dataType: "json",

    url: "http://192.168.1.8",

    success: function (data) {

      $.ajax({

        method: "POST", // this is going out to your PHP backend

        dataType: "json",

        url: "http://localhost:8080/SaveMyData.php",

        data: data,

        success: function (response) {

          // do stuff with the response if you'd like

        })

      });

    },

  });

}

這里違反了大量“最佳實踐”,但出于學校作業的目的,這應該讓你指出正確的方向。


查看完整回答
反對 回復 2023-03-11
  • 1 回答
  • 0 關注
  • 218 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號