国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微信小程序通過 node 連接 mysql——方法,簡要原理,及一些常見問題

這篇具有很好參考價值的文章主要介紹了微信小程序通過 node 連接 mysql——方法,簡要原理,及一些常見問題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

博主自己在22年夏天根據(jù)課程要求做了一個小程序連接阿里云服務(wù)器的案例,在最近又碰到了相應(yīng)的需求。

原參考文章:微信小程序 Node連接本地MYSQL_微信小程序nodejs連接數(shù)據(jù)庫_JJJenny0607的博客-CSDN博客 ,還請多多支持原作者!

第二次嘗試的時候已經(jīng)熟練許多了,但是還是遇到了很多挺煩人的問題,也浪費了很多時間排查 bug。因此博主打算趁著剛做過記憶還深刻的時候,把全過程、博主自己的理解和遇到的一些問題的解決方法整理出來。當然我也不可能能解決所有問題,遇到的部分問題也只是針對我自己的情況可以解決。因此如果 solutions 不起效或遇到其他問題,可以在評論區(qū)留言,我會與大家溝通(不保證能否解決~)。

原理

微信小程序使用npm支持mysql,# 微信小程序,# Mysql 入門(完結(jié)),# 問題解決,微信小程序,mysql,小程序

nodejs 作為中介服務(wù)器,可以讓小程序連接 mysql 數(shù)據(jù)庫。

步驟

如果不出錯誤的話, 基本流程就是跟著上面的文章來的。

  1. 下載 node。可以在 cmd 中輸入 node -v 查看有無成功下載。

    微信小程序使用npm支持mysql,# 微信小程序,# Mysql 入門(完結(jié)),# 問題解決,微信小程序,mysql,小程序

  2. 新建一個數(shù)據(jù)庫,這一部分很簡單,有 mysql 相關(guān)基礎(chǔ)的讀者應(yīng)該沒問題,也可以看博主的 mysql 專欄學(xué)習(xí)。

  3. 新建一個小程序,在結(jié)構(gòu)中新建 server 文件夾用于存儲 node 本地服務(wù)器相關(guān)代碼。

    微信小程序使用npm支持mysql,# 微信小程序,# Mysql 入門(完結(jié)),# 問題解決,微信小程序,mysql,小程序

  4. 右鍵 server 文件夾,點擊“在內(nèi)建終端中打開”,安裝一些所需的包。

npm init -y
npm i mysql --save-dev
npm install body-parser --save-dev
npm install express --save-dev
  1. 在文件夾下新建 server.js 文件,編寫代碼。
const express=require('express')
const bodyParser =require('body-parser')
const app=express()
const mysql = require('mysql')
const IPAddress='[你的數(shù)據(jù)庫地址]'//因為這里是要鏈接遠程數(shù)據(jù)庫,ip 地址是 mysql 的地址?。”镜鼐褪?127.0.0.1,服務(wù)器上就自己找找看
const UserName='[mysql 用戶名]'
const PWD='[mysql 密碼]'
const DBName='[要操作的數(shù)據(jù)庫名]'
app.use(express.json())
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: false }))
//這上面一段固定的,[] 的部分需要根據(jù)自己數(shù)據(jù)庫的信息修改



//處理get請求。這里是一個 get 請求的方法演示,作用是查詢 table1 表中的所有數(shù)據(jù)并返回。
app.get('/getUser',(req,res)=>{ //這里的是 get 方法 getUser,對應(yīng)了剛才的頁面發(fā)來的請求。就會執(zhí)行這個方法。
  //參數(shù)傳入是在 req.body 對象里面。比如上面的語句是獲取傳入的 openid 變量,并且我們新定義一個叫 openid 的變量存儲傳入的 openid 變量
  var connection=mysql.createConnection({
    host:IPAddress,
    port: 3306,		//端口號,mysql 固定3306
    user:UserName,
    password:PWD,
    database:DBName
  })//配置連接的屬性
  connection.connect();//嘗試連接
  connection.query("select * from table1",function(error,results,fields){//執(zhí)行查找語句
    if(error) console.log(error);//執(zhí)行失敗的話
    res.json(results)
    console.log(results)
    
  })
  connection.end();//斷開連接
  
})

app.listen(3000,()=>{//這是一個監(jiān)聽端口,會輸出監(jiān)聽到的信息。上面的 console.log 就會在這里輸出
  console.log('server running at http://'+IPAddress+':3000')
})

我們的 nodejs 是部署在本地的,就在 server 文件夾里。node_modules 是下載的 nodejs 包,server.js 是我們的操作 nodejs 的代碼。

我們在需要調(diào)用數(shù)據(jù)庫的頁面里先調(diào)用本地服務(wù)器,比如在 mysqlTest.js 中,onLoad 里:

onLoad() {
    //我們寫一個調(diào)用數(shù)據(jù)庫函數(shù),使得本頁面加載時調(diào)用此函數(shù),查找 youqi.data 里的所有條目。
        wx.request({
            method: 'GET',//這里要和 server.js 定義的 post or get 一致!??!
            url: 'http://[本地 IPV4 地址]:3000/getUser',//這里的 ip 地址不是數(shù)據(jù)庫的地址,而是你的電腦本地的地址,因為這一步的操作是要找到本地 nodejs 服務(wù)器。getUser 要和 server.js 中定義的方法名一致。
            data: {
              //這里面是傳入?yún)?shù)。比如我們要 select * from data where openid= 給定的 openid,就可以從這里傳入
            },
            success: function (res) {//成功獲取到值,返回一個 res 對象。如果不知道 res 對象里面包含什么,可以先輸出 res 對象看一下其中都包含什么
              console.log(res);
            },
            fail: function () {//沒有獲取到值,說明這中間出問題了。
              console.log("獲取失敗");
            }
          })
    },

本地 IPV4 地址是怎么查出來的?打開 cmd,輸入 ipconfig。無線局域網(wǎng)適配器 WLAN 里的 IPV4 即是。

nodejs 接收到了請求,就會執(zhí)行 server.js 里對應(yīng)的方法。

如何運行

首先 nodejs 服務(wù)器需要手動開啟,我還不會自動開啟。

右鍵 server 文件夾,在內(nèi)建終端中打開,然后在終端中輸入:

微信小程序使用npm支持mysql,# 微信小程序,# Mysql 入門(完結(jié)),# 問題解決,微信小程序,mysql,小程序

下面那句話說明正常啟動服務(wù)器并且開始監(jiān)聽。

我們輸出一下 res,看看成功會返回什么信息。調(diào)試器里的 console 輸出:

微信小程序使用npm支持mysql,# 微信小程序,# Mysql 入門(完結(jié)),# 問題解決,微信小程序,mysql,小程序

data 里是我們數(shù)據(jù)庫的查詢結(jié)果。

微信小程序使用npm支持mysql,# 微信小程序,# Mysql 入門(完結(jié)),# 問題解決,微信小程序,mysql,小程序

res.data 獲取這個15長度的 Array。

微信小程序使用npm支持mysql,# 微信小程序,# Mysql 入門(完結(jié)),# 問題解決,微信小程序,mysql,小程序

然后比如我們要獲取其中的 time 值,就是 res.data[0].time, res.data[1].time… res.dat[14].time。

{} 表示其中是一個對象變量,通過句號+索引名稱獲取特定的值。

而剛才的一直在監(jiān)聽的內(nèi)建終端里輸出:

微信小程序使用npm支持mysql,# 微信小程序,# Mysql 入門(完結(jié)),# 問題解決,微信小程序,mysql,小程序

這個的輸出對應(yīng) function(error,results,fields) 里的 console.log(results)。如果查詢失敗,error 也是在這個內(nèi)建終端里輸出。

常見問題

數(shù)據(jù)庫無法連接?

建好數(shù)據(jù)庫后,最好就先用 cmd 或 workbench 連接一下試試。如果能成功連接并查詢,之后出問題也可以排除 mysql 的一部分問題。

如果采用云服務(wù)器(如阿里云)連接不上,可能的問題有:

  • 服務(wù)器端口 80 和 3306 沒開。(不建議一鍵全部放行,有被hacker get 的風(fēng)險)
  • mysql 需要有一個用戶能在所有 ip 地址里對該數(shù)據(jù)庫進行讀寫操作,這里可以參考 DCL 的內(nèi)容來新建符合要求的 user。Mysql_9 SQL 語句——DCL_sql語言dcl_灰海寬松的博客-CSDN博客
  • 服務(wù)器防火墻的問題,要開啟3306端口。

? 微信小程序使用npm支持mysql,# 微信小程序,# Mysql 入門(完結(jié)),# 問題解決,微信小程序,mysql,小程序

小程序報錯 ERR TIMEOUT

打開網(wǎng)站可以看到 404 顯示。

  • 首先先確保前面那個問題確實解決了,該數(shù)據(jù)庫確實可以從本地連接,,不是數(shù)據(jù)庫的問題。

  • 再確認 get post 方法是否對應(yīng),方法名是否寫錯。很多時候輸入了錯誤的鏈接也會顯示 404.

  • 小程序不校驗合法域名是否打開。

  • 啟用或關(guān)閉 windows 功能——Internet Information Services,及其可承載 web 核心,子項全部打開。點擊確定。如果成功啟動,在瀏覽器中輸入 127.0.0.1,應(yīng)該可以看到:

    微信小程序使用npm支持mysql,# 微信小程序,# Mysql 入門(完結(jié)),# 問題解決,微信小程序,mysql,小程序

  • 檢查方法名,get post 類別是否寫錯。文章來源地址http://www.zghlxwxcb.cn/news/detail-779237.html

到了這里,關(guān)于微信小程序通過 node 連接 mysql——方法,簡要原理,及一些常見問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包