最近在研究微信小程序的雲開發功能。雲開發最大的好處就是不須要前端搭建服務器,可使用雲端能力,從零開始寫出來一個能上線的微信小程序,避免了買服務器的開銷,對於我的來嘗試練手微信小程序從前端到後臺的開發,仍是一個不錯的選擇。能夠作到一天就能上線一個微信小程序。html
雲開發爲開發者提供完整的雲端支持,弱化後端和運維概念,無需搭建服務器,使用平臺提供的 API 進行核心業務開發,便可實現快速上線和迭代,同時這一能力,同開發者已經使用的雲服務相互兼容,並不互斥。前端
雲開發目前提供三大基礎能力支持:node
好了,介紹了這麼多關於雲開發的知識,感性的同窗能夠去研究研究。官方文檔地址:https://developers.weixin.qq....jquery
小程序是關於答題的,因此題目的來源是一個問題。上網搜,一個題目一個題目粘貼是一種方法,可是這樣的重複工做,估計粘個10左右就想放棄了。因此想到了網頁抓取。正好把以前學的node撿起來。ios
接下來就能夠用npm init
來初始化一個node項目,一路回車後,便可生成一個package.json文件。
而後npm install --save axios cheerio
安裝cheerio和axios包。數據庫
關鍵的是用cheerio來實現一個相似jquery的功能。只需將抓取到的內容cheerio.load(quesitons)
一下便可,以後就能夠按照jquery的操做取dom,組裝你想要的數據了。npm
最後用fs.writeFile
將數據保存到json文件中,大功告成。json
具體代碼以下:axios
let axios = require("axios"); let cheerio = require("cheerio"); let fs = require("fs"); // 個人html結構大體以下,有不少條數據 const questions = `<li id="q1" style="display: list-item;"> <div class="questionWrapper"> <div class="question">舉頭望明月,__________。</div> <div class="answer" value="0"> 回首白雲低 </div> <div class="answer" value="1"> 低頭思故鄉 </div> <div class="answer" value="0"> 當春乃發生 </div> <div class="answer" value="0"> 紅掌撥清波 </div> </div> </li> <li id="q2"> <div class="questionWrapper"> <div class="question">__________,卻話巴山夜雨時。</div> <div class="answer" value="1"> 何當共剪西窗燭 </div> <div class="answer" value="0"> 在天願作比翼鳥 </div> <div class="answer" value="0"> 世味年來薄似紗 </div> <div class="answer" value="0"> 兩岸青山相對出 </div> </div> </li> .......... `; const $ = cheerio.load(quesitons); var arr = []; for (var i = 0; i < 300; i++) { var obj = {}; obj.quesitons = $("#q" + i).find(".question").text(); obj.A = $($("#q" + i).find(".answer")[0]).text(); obj.B = $($("#q" + i).find(".answer")[1]).text(); obj.C = $($("#q" + i).find(".answer")[2]).text(); obj.D = $($("#q" + i).find(".answer")[3]).text(); obj.index = i + 1; obj.answer = $($("#q" + i).find(".answer")[0]).attr("value") == 1 ? "A" : $($("#q" + i).find(".answer")[1]).attr("value") == 1 ? "B" : $($("#q" + i).find(".answer")[2]).attr("value") == 1 ? "C" : "D"; arr.push(obj); } fs.writeFile("poem.json", JSON.stringify(arr), err => { if (err) throw err; console.log("json文件已成功保存!"); });
保存到json後的文件格式以下,這樣就能夠經過json文件上傳到雲端服務器了。小程序
圖片描述
微信小程序雲開發的數據庫,上傳json文件的數據格式須要注意一下,以前一直提示格式錯誤,後來才發現,JSON 數據不是數組,而是相似 JSON Lines,即各個記錄對象之間使用 n 分隔,而非逗號。因此還須要對node寫出來的json文件作一個小處理以後才能上傳成功。