上次我們教POSTMAN做POST,今天要教如何在node 裡做request的方法
首先我們要先下載套件 request 同樣是以前教過的
npm install Request-Promise
下載好呢 我們就可以直接使用該套件先引用套件 然後將資料填好 然後就能直接做request
const request = require('request-promise');
let push = async () => {
if(Sensor_key[0] == 'CO2'){
Sensordata = {
method: 'POST',
uri: 'http://127.0.0.1:30001/insert' ,
headers: {
'Content-Type': 'application/json'
},
body: {
mac : "3024324b3a84",
"sensorData" : {
"CO2" : Sensor_data[0],
"TVOC" : Sensor_data[1],
}
},
json: true
}
}
request(Sensordata).then(function (response) {
console.log(response)
console.log("post success")
}).catch(function (err) {
console.error(err);
});
}
可以看到我們request的方式是 POST URL是我們上次講的insert的網址
header要寫說我們傳送的是json 然後body是我們傳送的內容 有就是我們Sensor的data 和mac
而request很貼心 如果我們填 json:true 他會幫我們的資料自動轉成json格式
完整的程式碼如下
const request = require('request-promise');
const Readline = require('@serialport/parser-readline')
var SerialPort = require("serialport");
const parser = new Readline()
var arduinoCOMPort = "/dev/ttyUSB0";
var arduinoport = new SerialPort(arduinoCOMPort, {baudRate: 9600}).setEncoding('utf8');
arduinoport.on("open", (err) => {
console.log('serial port open'); //成功連接時印出port open
if(err){
console.log("no serial device found")//失敗時印出 device not found
}
},20);
arduinoport.pipe(parser)
parser.on('data', line =>{
let udate = new Date();
let nowtime = udate.toLocaleString('zh-hant', { timeZone: 'Asia/Taipei' })
console.log(line)
Arduno_data = JSON.parse(line);
Sensor_data = Object.values(Arduno_data)
Sensor_key = Object.keys(Arduno_data)
client.publish('arduino_data', line)
push()
})
let push = async () => {
if(Sensor_key[0] == 'CO2'){
Sensordata = {
method: 'POST',
uri: 'http://127.0.0.1:30001/insert' ,
headers: {
'Content-Type': 'application/json'
},
body: {
mac : "你的mac位址",
"sensorData" : {
"CO2" : Sensor_data[0],
"TVOC" : Sensor_data[1],
}
},
json: true
}
}
request(Sensordata).then(function (response) {
console.log(response)
console.log("post success")
}).catch(function (err) {
console.error(err);
});
}
setInterval(function(){
arduinoport.write('g')
},5000)
執行成功後畫面會長這樣
這樣子就能做到將資料上傳上去了 可是到現在都只有一台裝置 如果我有兩台以上呢 這時候就勢必自己去註冊一個mac 所以我們下次要講node裡面如何尋找自己的mac和ip 然後在平台上做註冊