知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
您當(dāng)前位置>首頁 » 新聞資訊 » 小程序相關(guān) >
手把手教你從零上線小程序+Node.js服務(wù)端 (下)
發(fā)表時間:2021-1-5
發(fā)布人:葵宇科技
瀏覽次數(shù):51
六、搭建線上數(shù)據(jù)庫
也就是把我們的本地數(shù)據(jù)庫到服務(wù)器上照搬一套。
第一步,下載mysql
第二步,利用phpMyAdmin
實現(xiàn)網(wǎng)頁可視化數(shù)據(jù)庫,方便查看和管理
LNMP
有一個LNMP一鍵安裝包可以幫助我們快速在服務(wù)器上搭建好Nignx、MySQL和PHP,省去自己單個下載的麻煩。
- 進(jìn)入頁面后,新手可以參照下圖選擇。MySQL和PHP必選,一些不了解的不需要用到的暫時不安裝了。
- 點擊生成,把生成的安裝命令復(fù)制到服務(wù)器命令行下(右鍵就是復(fù)制),回車即可。
- 安裝過程非常慢,不用等,可以先看看之后的操作。
安裝完成后,輸入lnmp
看看是否出現(xiàn)相關(guān)信息,若出現(xiàn)了表示安裝成功了。
lnmp mysql start
啟動數(shù)據(jù)庫。
輸入網(wǎng)址yourIp/phpmyadmin
即可看到線上數(shù)據(jù)庫,需要輸入賬戶和密碼。
導(dǎo)出.sql
將本地電腦上創(chuàng)建好的數(shù)據(jù)庫導(dǎo)出為.sql
(創(chuàng)建該數(shù)據(jù)庫的命令sql集合)避免在云服務(wù)器上重復(fù)創(chuàng)建了。
- 選擇Adminitration
- Data Export 數(shù)據(jù)導(dǎo)出
- 選擇想要導(dǎo)出的數(shù)據(jù)庫
- 導(dǎo)出表格還是導(dǎo)出數(shù)據(jù)還是都導(dǎo)出,這里只導(dǎo)出表格
- 導(dǎo)出為一個.sql文件,選擇導(dǎo)出目錄
- 包括數(shù)據(jù)庫創(chuàng)建
- 開始導(dǎo)出
然后,我們拿到了mini_demo.sql
導(dǎo)入.sql
來到phpMyAdmin頁面,登錄之后選擇主頁,點擊導(dǎo)入,選擇剛剛生成的sql文件,滾動到最下面點擊執(zhí)行。
最后執(zhí)行結(jié)果應(yīng)該為這樣。如果導(dǎo)入過程出現(xiàn)報錯,發(fā)現(xiàn)原因后可以打開sql文件手動修改。比如B表有個外鍵引自
A表,那必須要先創(chuàng)建A表,否則就會報錯,這時候把兩個表的創(chuàng)建命令換一下位置就行。
檢查一下,沒錯。
恭喜你,線上數(shù)據(jù)庫搭建完了。(lnmp可能還在下載,先看看下一節(jié))
七、部署到云服務(wù)器并啟動
上線其實很簡單,無非就是讓我們的后端代碼在云服務(wù)器上跑起來。
如果你還不知道云服務(wù)器是什么,可以去阿里云點點看看。如果你是個學(xué)生并且對開發(fā)有興趣,(請趕快買吧!)學(xué)生價還是很香的喲。
到此為止,假設(shè)我們已經(jīng)擁有了自己的服務(wù)器。
登錄服務(wù)器
- 打開終端
ssh root@yourip
- 輸入密碼
- 登錄成功
拉取代碼
如果你的本地代碼還沒上傳到GitHub,趕緊的先上傳。步驟就不再贅述,一搜便是。
- git 可用
git --version
查看git是否可用,若出現(xiàn)版本號,直接開始拉取代碼。
若報錯,可以使用yum install git
下載git(云服務(wù)器的操作系統(tǒng)通常會自帶yum)
下載完后,添加用戶名和郵箱
git config --global user.name 'yourName'
git config --global user.email 'your Email'
復(fù)制代碼
- clone 項目
進(jìn)入到目錄后,使用git clone <項目地址>
拉取代碼到服務(wù)器上。
若使用ssh地址并且服務(wù)器上的git密鑰沒有添加到你的GitHub帳號上,會報無權(quán)限錯誤,有兩種解決方法(推薦2)
- 改用https地址clone
ssh-keygen -t rsa -C 'yourEmaill'
生成密鑰并添加到GitHub帳號上。
重新clone
啟動項目
- 進(jìn)入項目目錄 cd xxx (按下tab鍵會有文件夾名稱提示)
- 下載依賴包
npm install
,可簡寫為npm i
若command not found ,說明沒有npm環(huán)境,同時檢查一下是否有node,不存在可以參考此文章進(jìn)行下載,兩種方式選擇一種就行。
- 按照本地同樣的方式啟動
export XXX="xxx" ... && node index.js
- 若出現(xiàn)以上信息,說明云服務(wù)器本地已經(jīng)成功啟動服務(wù)端了,外界訪問它的地址是
yourIP:端口號
例如,我的是這個地址(域名通過DNS解析最后訪問的也是ip地址)
持久化
普通的node 啟動項目,當(dāng)退出終端之后,服務(wù)端也就停止運(yùn)行了,不能實現(xiàn)隨時隨地訪問。
我們使用npm包 pm2
工具持久化運(yùn)行。
npm install pm2 -g
下載
pm2 -v
檢測
然后使用下面的命令啟動項目,請先填入自己的環(huán)境變量信息。
pm2 start index.js --env={"DATABASE": "","USER": "","PWD":"","APPID": "","SECRET": ""}
復(fù)制代碼
但是通過這種方式啟動起來的項目不會輸出信息,所以先確保使用node
啟動沒問題后,再使用該方法啟動,否則一旦出錯,都不知道問題在哪里。
線上聯(lián)調(diào)
這時把小程序的baseUrl
替換為我們的服務(wù)器啟動該項目的地址,然后開始調(diào)試吧。
過程中總會出現(xiàn)問題的,遇到問題不要心急,要從可能的錯誤原因一個個排查。
分享一個我的錯誤吧,login登錄的時候報的錯。
訪問數(shù)據(jù)庫被拒絕,需要密碼。第一反應(yīng)是數(shù)據(jù)庫的問題,mysql -u root -p
輸入密碼后就進(jìn)入數(shù)據(jù)庫了,那說明數(shù)據(jù)庫本身沒問題,可能的原因就是環(huán)境變量的用戶名和密碼寫錯了,檢查一下輸出,果然密碼的引號是中文格式的,所以報錯了。
修改完后重啟,就沒什么問題了。
八、配置https
小程序發(fā)布和聯(lián)調(diào),服務(wù)端地址都需要使用https協(xié)議,否則啥也訪問不到。
https證書申請通常是和域名綁定的,所以我們先需要一個域名。在阿里云域名或者騰訊云域名下購買一個域名。
ip地址改域名
個人購買的絕大部分是二級域名,也就是a.b形式的。拿到域名后,去域名解析頁添加域名,然后添加記錄(三級域名)。
什么是二三級域名?例如tieba.baudu.com,其中.com
是一級(頂級)域名,baidu
是二級域名,tieba
是三級域名。二級域名可以衍生出很多三級域名。
這種不對外開放的后端地址,我們添加一個三級域名映射即可。
主機(jī)記錄就是三級域名名字
記錄類型為CNAME
表示映射到記錄值對應(yīng)的ip地址;如果為A
表示映射到ip。這樣的好處就是如果ip有變動,只修改一次ip即可
記錄值就是ip地址,可以為ip或者域名
最后點擊確認(rèn)即可
我最后要訪問的服務(wù)器地址就是mini_demo.escript.cn,進(jìn)入之后的頁面與直接訪問自己的ip地址一樣,說明域名解析成功了。
申請SSl證書
阿里云或騰訊云上可以免費(fèi)購買ssl證書,前提需要實名認(rèn)證。
買完后綁定上一步生成的域名,驗證通過后就可以下載使用了。
這是阿里云的免費(fèi)證書,點擊下載,選擇其中一個服務(wù)器,這樣下載到的是本地電腦上。
如果項目在自己電腦上運(yùn)行,我們可能直接會把證書文件放到項目文件夾里,但如果該項目要上傳到服務(wù)器,則下載的證書文件最好不要直接暴露在項目中,可以選擇下載到服務(wù)器別的文件夾里。
有兩種方法
- 直接下載到服務(wù)器:wget url下載鏈接
- 若url失效,則先下載到本地,使用
scp xxx.zip root@ip:/root/https
,使用unzip xxx.zip
命令解壓
啟動https服務(wù)
需要最后一次修改服務(wù)端代碼。
下載httpsnpm i https
,用來啟動https服務(wù)。
// index.js
const https = require("https")
// SSL options
// 若讀取不到文件,則啟動http服務(wù)
try {
const options = {
key: fs.readFileSync("/root/https/xxx.key"), //ssl文件路徑 下載下來的證書文件
cert: fs.readFileSync("/root/https/xxx.pem") //ssl文件路徑 下載下來的證書文件
};
// 創(chuàng)建https 服務(wù)
const httpsServer = https.createServer(options, app.callback());
httpsServer.listen(443); // 默認(rèn)監(jiān)聽443
console.log("已啟動https服務(wù)");
} catch (error) {
app.listen(3000);
console.log("無證書文件!已啟動http服務(wù),端口3000");
}
復(fù)制代碼
這些也都先在本地電腦上編碼測試,通過之后再上傳到服務(wù)器。
這個過程應(yīng)該沒什么問題。完成后,與之前一樣自測一遍https接口,通過之后把小程序的baseUrl
改成最新的https地址。
過五關(guān)斬六將,終于來到了激動人心的時刻。
確保你的小程序本地編譯都通過后,來,向前一步,讓夢想照進(jìn)現(xiàn)實。
九、審核發(fā)布
上傳
進(jìn)入微信開發(fā)者工具,點擊右上角的上傳按鈕,跳出一個提示彈窗,點擊確定。
然后輸入版本號和備注。
如果是正式版,可以發(fā)布為v1.0.0;試用版v0.0.x
版本號不是隨意取的。雖然輸入什么都可以上傳成功,但作為一名(專業(yè)的)開發(fā)人員最好還是遵守一下約定,以后工作中都用得上。
體驗版
上傳成功之后,登錄小程序,進(jìn)入版本管理。
最下面的開發(fā)版本就是剛剛上傳的版本,可以將其選為體驗版,頁面路徑就是進(jìn)入小程序的首頁。
掃描二維碼進(jìn)入體驗版,但只有管理員和體驗者有權(quán)訪問,在成員管理可以添加體驗者。
審核版
開發(fā)版需要先提交審核,點擊一些下一步/確定的按鈕們后,再填寫一些信息,其中版本描述是用戶能夠看到的小程序信息之一,所以不要亂寫,別的信息都是選填,不填問題也不大。
提交審核之后,該版本就變成了審核版本。
審核版本先是機(jī)器審核,然后人工審核。主要看小程序?qū)τ脩舻臋?quán)限申請是否規(guī)范以及本身是否有問題,現(xiàn)在已經(jīng)越來越嚴(yán)格了。(有一次我連續(xù)審核了六次都沒過,最后提出異議,就過了。。
線上版
審核通過之后,審核版本發(fā)布,管理員掃碼確認(rèn),就發(fā)布成功了。這個版本會變成線上版本
緊接著,就能在微信上搜到自己的小程序了。
總結(jié)
到底為此,小程序的第一版就over了,我們對如何開發(fā)、上線一個以Node.js為服務(wù)端的小程序,也應(yīng)該有了大致了解。接下來就是版本迭代與維護(hù),實現(xiàn)方法大同小異,相信這時候的你已經(jīng)心里有底了。
作者:豬是倒著讀的
鏈接:https://juejin.im/post/6875595382500360200
來源:掘金
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
相關(guān)案例查看更多
相關(guān)閱讀
- 云南建設(shè)廳網(wǎng)站
- 云南小程序制作
- 云南小程序開發(fā)課程
- 昆明小程序定制開發(fā)
- 重慶網(wǎng)站建設(shè)公司
- typescript
- 開發(fā)框架
- 電商網(wǎng)站建設(shè)
- 怎么做網(wǎng)站
- 云南小程序定制
- 汽車報廢回收
- 云南建設(shè)廳網(wǎng)站首頁
- vue開發(fā)小程序
- 軟件定制
- 商標(biāo)
- 小程序開發(fā)排名前十名
- 云南省住房建設(shè)廳網(wǎng)站
- 微信小程序開發(fā)入門課程
- uniapp開發(fā)小程序
- 網(wǎng)站建設(shè)費(fèi)用
- 軟件開發(fā)
- 企業(yè)網(wǎng)站
- 小程序被攻擊
- 小程序分銷商城
- 小程序開發(fā)聯(lián)系方式
- 網(wǎng)站建設(shè)需要多少錢
- 網(wǎng)站優(yōu)化公司
- 網(wǎng)站搭建
- 小程序
- 網(wǎng)站建設(shè)方案 doc