Node做後臺開發的一個簡單且實用的應用(程式碼加部署)
阿新 • • 發佈:2018-12-10
下面通過一個微信小程式後端的程式碼,來介紹一下Node做後臺開發的一些思路。
這段程式碼的功能是:
建立一個Http埠服務,監聽來自9000埠的訊息,微信小程式是通過9000埠給該node後臺程式傳送post請求,node後臺程式接受完資料後,然後請求圖靈機器人的介面:http://openapi.tuling123.com/openapi/api/v2,拿到訊息後,將訊息資料返回給微信小程式。
整個Node程式充當了HTTP服務的代理,也許大家會疑問為什麼不直接用微信小程式直接呼叫這個圖靈機器人的介面啊,這是由原因的:原因在於微信小程式上線的要求是程式中呼叫的介面必須是WSS的,而圖靈機器人的介面不提供WSS的,因此這裡將Node程式封裝成WSS的,讓Node程式來處理微信小程式的請求,然後Node程式再去處理圖靈機器人的介面請求。
1、Node程式碼詳解見如下:
var request_aa = require('request'); var sendMsg="你好!" //匯入http模組 var http=require('http'); //匯入url模組 var url=require('url'); var querystring = require("querystring"); http.createServer(function(request,response){ request.setEncoding('utf-8'); var postData = ""; // 資料塊接收中 request.on("data", function (postDataChunk) { postData += postDataChunk; }); request.on("end", function () { console.log('資料接收完畢'); postData = JSON.parse(postData) //console.log(typeof(postData)) //console.log(postData.msg); var sendMsg = postData.msg; request_aa({ url: 'http://openapi.tuling123.com/openapi/api/v2', method: "POST", json: true, headers: { "content-type": "application/json", }, body: { "reqType": 0, "perception": { "inputText": { "text": sendMsg } }, "userInfo": { "apiKey": "b94205b642af4e9f8c5c38849a42d14e", "userId": "x495133087" } }, }, function(error, res, body) { if (!error && res.statusCode == 200) { console.log(body.results[0].values.text) // 請求成功的處理邏輯 //console.log(response.data.results[0].values.text) var message = body.results[0].values.text; response.writeHead(200,{'Content-Type':'text/html;charset=utf-8'});//設定response編碼為utf-8 response.write(message); response.end(); } }); }); }).listen(9000); console.log("--HTTP NodeJS Connect--");
- 首先是引入包:通過require(xxx)來引用;
- Node中是弱變數語言,所有變數都是var
- 其餘程式碼是床架你一個HTTP SERVER,然後處理post請求。
2、利用Pm2部署Node服務
1、檢視服務 pm2 list , 可以看到服務名稱是httpServer,當前狀態是online,重啟次數是272,記憶體和CPU利用率等
2、檢視log日誌 pm2 logs
pm2部署程式碼(自動重啟):pm2 start xxx
pm2重啟程式碼 : pm2 restart xxx