下面通过一个微信小程序后端的代码,来介绍一下Node做后台开发的一些思路。
建立一个Http端口服务,监听来自9000端口的消息,微信小程序是通过9000端口给该node后台程序发送post请求,node后台程序接受完数据后,然后请求图灵机器人的接口:http://openapi.tuling123.com/openapi/api/v2,拿到消息后,将消息数据返回给微信小程序。
整个Node程序充当了HTTP服务的代理,也许大家会疑问为什么不直接用微信小程序直接调用这个图灵机器人的接口啊,这是由原因的:原因在于微信小程序上线的要求是程序中调用的接口必须是WSS的,而图灵机器人的接口不提供WSS的,因此这里将Node程序封装成WSS的,让Node程序来处理微信小程序的请求,然后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--");
1、查看服务 pm2 list , 可以看到服务名称是httpServer,当前状态是online,重启次数是272,内存和CPU利用率等
2、查看log日志 pm2 logs
pm2部署代码(自动重启):pm2 start xxx
pm2重启代码 : pm2 restart xxx