第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

使用javascript插入MySQL數(shù)據(jù)庫

使用javascript插入MySQL數(shù)據(jù)庫

PHP
GCT1015 2023-03-11 15:50:11
我目前正在做一個學(xué)校項目,我需要一些幫助。我在嘗試將從另一個 IP 地址(使用 AJAX)讀取的數(shù)據(jù)放入 MySQL 數(shù)據(jù)庫時遇到了問題。我嘗試使用 node.js,但是因為當(dāng)我在網(wǎng)頁上按下按鈕時我正在調(diào)用該函數(shù),所以它不起作用......所以關(guān)于如何使 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]);      }    },  });}我得到并想插入數(shù)據(jù)庫的數(shù)據(jù):
查看完整描述

1 回答

?
慕森卡

TA貢獻(xiàn)1806條經(jīng)驗 獲得超8個贊

聽起來你有點混淆了你的技術(shù)。

讓我們先澄清幾個術(shù)語:

節(jié)點JS

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

運行

代碼執(zhí)行的環(huán)境,如NodeJS或 Web 瀏覽器。

服務(wù)器端

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

后端

當(dāng)人們說“后端”時,通常與“服務(wù)器端”的意思相同。

前端

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

阿賈克斯

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

既然我們已經(jīng)解決了這個問題......

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

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

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

當(dāng)然,您還需要隨請求傳遞數(shù)據(jù)。它與您的調(diào)用中的選項參數(shù)一起傳遞$.ajax(/* ... */)。

在高層次上,這就是我相信你正在努力實現(xiàn)的目標(biāo):

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

所以基本上你的應(yīng)用應(yīng)該至少有兩個文件:

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

  2. app.js這將是您的 Node 應(yīng)用程序。它必須公開一個端點,您的前端代碼可以將數(shù)據(jù)發(fā)送到該端點。在該端點的函數(shù)內(nèi),您將負(fù)責(zé)將數(shù)據(jù)寫入數(shù)據(jù)庫。

有一個名為 Express 的庫可以幫助您創(chuàng)建端點。我建議遵循他們的入門指南:https ://expressjs.com/en/starter/installing.html

更新

我看到你用圖表更新了你的答案。我假設(shè)您的心智模型可能正是那樣,這就是您遇到困難的原因。

例如,當(dāng)用戶訪問諸如https://stackoverflow.com之類的 url 時,請求不會轉(zhuǎn)到 Web 瀏覽器。請求必須首先通過服務(wù)器。當(dāng)你使用 Node 時,你的應(yīng)用本質(zhì)上就是服務(wù)器,負(fù)責(zé)返回正確的響應(yīng)。

在您的情況下,響應(yīng)將是一個 HTML 文件,index.html例如。

index.html就是網(wǎng)頁,它將包含您的“前端”JavaScript 代碼,它可以通過 HTTP 與您的 Raspberry Pi 服務(wù)器通信以獲取您正在談?wù)摰膱D像數(shù)據(jù)。

在瀏覽器中運行的 JavaScript 無法直接與 SQL 數(shù)據(jù)庫通信。所以你必須通過網(wǎng)絡(luò)向你的節(jié)點服務(wù)發(fā)送請求。在您的后端應(yīng)用程序中,您可以借助從 NPM 獲得的包將數(shù)據(jù)寫入 MySQL 數(shù)據(jù)庫。這是一個例子: https: //www.npmjs.com/package/mysql

更新 2

聽起來您更喜歡使用 PHP。您可以將 NodeJS 換成 PHP,而我的圖表仍將代表您希望在較高層次上實現(xiàn)的目標(biāo)。關(guān)鍵區(qū)別在于您不必弄清楚如何設(shè)置“路線”。

使用 PHP,您可以只擁有一個名為以下內(nèi)容的文件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

}

然后“端點”(對您如何為您的應(yīng)用程序提供服務(wù)做出一些假設(shè))是公正的,http://localhost:8080/SaveMyData.php它成為您從瀏覽器傳遞給 AJAX 調(diào)用的 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

        })

      });

    },

  });

}

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


查看完整回答
反對 回復(fù) 2023-03-11
  • 1 回答
  • 0 關(guān)注
  • 228 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號