日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

微信小程序通过 node 连接 mysql——方法,简要原理,及一些常见问题

發布時間:2023/12/31 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信小程序通过 node 连接 mysql——方法,简要原理,及一些常见问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

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

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

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

原理

nodejs 作為中介服務器,可以讓小程序連接 mysql 數據庫。

步驟

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

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

  • 新建一個數據庫,這一部分很簡單,有 mysql 相關基礎的讀者應該沒問題,也可以看博主的 mysql 專欄學習。

  • 新建一個小程序,在結構中新建 server 文件夾用于存儲 node 本地服務器相關代碼。

  • 右鍵 server 文件夾,點擊“在內建終端中打開”,安裝一些所需的包。

  • npm init -y npm i mysql --save-dev npm install body-parser --save-dev npm install express --save-dev
  • 在文件夾下新建 server.js 文件,編寫代碼。
  • const express=require('express') const bodyParser =require('body-parser') const app=express() const mysql = require('mysql') const IPAddress='[你的數據庫地址]'//因為這里是要鏈接遠程數據庫,ip 地址是 mysql 的地址!!本地就是 127.0.0.1,服務器上就自己找找看 const UserName='[mysql 用戶名]' const PWD='[mysql 密碼]' const DBName='[要操作的數據庫名]' app.use(express.json()) app.use(bodyParser.json()) app.use(bodyParser.urlencoded({ extended: false })) //這上面一段固定的,[] 的部分需要根據自己數據庫的信息修改//處理get請求。這里是一個 get 請求的方法演示,作用是查詢 table1 表中的所有數據并返回。 app.get('/getUser',(req,res)=>{ //這里的是 get 方法 getUser,對應了剛才的頁面發來的請求。就會執行這個方法。//參數傳入是在 req.body 對象里面。比如上面的語句是獲取傳入的 openid 變量,并且我們新定義一個叫 openid 的變量存儲傳入的 openid 變量var connection=mysql.createConnection({host:IPAddress,port: 3306, //端口號,mysql 固定3306user:UserName,password:PWD,database:DBName})//配置連接的屬性connection.connect();//嘗試連接connection.query("select * from table1",function(error,results,fields){//執行查找語句if(error) console.log(error);//執行失敗的話res.json(results)console.log(results)})connection.end();//斷開連接})app.listen(3000,()=>{//這是一個監聽端口,會輸出監聽到的信息。上面的 console.log 就會在這里輸出console.log('server running at http://'+IPAddress+':3000') })

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

    我們在需要調用數據庫的頁面里先調用本地服務器,比如在 mysqlTest.js 中,onLoad 里:

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

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

    nodejs 接收到了請求,就會執行 server.js 里對應的方法。

    如何運行

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

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

    下面那句話說明正常啟動服務器并且開始監聽。

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

    data 里是我們數據庫的查詢結果。

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

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

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

    而剛才的一直在監聽的內建終端里輸出:

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

    常見問題

    數據庫無法連接?

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

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

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

    ?

    小程序報錯 ERR TIMEOUT

    打開網站可以看到 404 顯示。

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

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

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

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

    • 檢查方法名,get post 類別是否寫錯。

    總結

    以上是生活随笔為你收集整理的微信小程序通过 node 连接 mysql——方法,简要原理,及一些常见问题的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 久久久久久色 | aaa成人| 亚洲精选国产 | 中文字字幕在线中文乱码 | 色94色欧美 | 神马影院午夜伦理片 | 色xxxx| 成年人av在线播放 | 69热在线 | 亚洲午夜在线播放 | 国产精品夫妻自拍 | 日韩av手机在线播放 | 三级网站国产 | 国产在线色站 | 成人毛片18女人毛片 | 99国产精品国产精品九九 | 欧美老熟妇喷水 | 久久久久久麻豆 | 中文字幕日韩经典 | 欧美激情一区二区三区免费观看 | jjzzjjzz欧美69巨大 | 大地资源二中文在线影视免费观看 | 欧美熟妇激情一区二区三区 | 亚洲人在线播放 | 神马影院一区二区三区 | 欧美,日韩,国产精品免费观看 | 一区二区三区四区免费观看 | 国产-第1页-浮力影院 | xxxxwwww在线观看 | 亚洲欧美第一 | 福利一区三区 | 国产全是老熟女太爽了 | 伊人网综合在线 | 中文字幕23 | 激情久久视频 | 亚洲 欧美 激情 另类 | 一级α片免费看刺激高潮视频 | 波多野结衣先锋影音 | 欧美激情综合五月色丁香 | 久久e热| 日本丰满熟妇bbxbbxhd | 4438国产精品一区二区 | 四虎国产精品免费 | 黄网址在线| 久久精品无码专区 | 久久久亚洲欧美 | 在线观视频免费观看 | 国产精品入口麻豆 | 亚洲伦理视频 | 欧美片17c07.com | 操xxxx| 蜜桃精品成人影片 | 污网在线看 | 久久无码国产视频 | 波多野结衣视频一区二区 | 麻豆福利在线 | 中文字幕2018 | 久久婷婷精品 | 日韩中文av在线 | 污视频网址 | 香蕉视频一级片 | 午夜视频免费在线观看 | 黄色av网站免费 | 日韩一区二区在线观看 | 性高湖久久久久久久久aaaaa | 插吧插吧综合网 | a√在线 | 最近国语视频在线观看免费播放 | 涩涩97| 黄视频网站在线看 | 亚洲91网站 | 一区在线免费 | 亚洲天堂一级 | 成人一区二 | 韩国一级一片高清免费观看 | 久久九九久久九九 | 日本高清久久 | 国产一区二区成人 | 人妻视频一区二区三区 | 秋霞国产精品 | 99热这里只有精品1 亚洲人交配视频 | 中文字幕无码人妻少妇免费 | 永久免费在线 | 99久久久久久 | 日日摸天天爽天天爽视频 | 亚洲av色香蕉一区二区三区 | 91久久影院 | 国产又粗又猛又爽69xx | 国产h视频在线观看 | 一级片免费视频 | 热逼视频 | 色综合久久88色综合天天 | 国产精品精品久久久 | www.伊人网| 二区三区免费 | 蜜桃成熟时李丽珍国语 | 欧美日韩高清不卡 | 毛片库 | 久久久久久国产精品三区 |