coap模塊中json的示例代碼缺少了
.setHeader("Accept","application/json"),添加后即可正常運(yùn)行
結(jié)合注釋理解代碼
const coap = require('coap') // or coap
, bl = require('bl')
//創(chuàng)建服務(wù)器
coap.createServer(function(req, res) {
if (req.headers['Accept'] != 'application/json') {
res.code = '4.06'
return res.end()
}
//得到請(qǐng)求數(shù)據(jù)并解析
var data = req.url.split('/')
console.log(data[1] + ':' + data[2] + '\n')
//設(shè)置響應(yīng)的格式為json
res.setOption('Content-Format', 'application/json')
//發(fā)送響應(yīng)
res.end(JSON.stringify({ cmd: "shutdown" }))
}).listen(function() {
//啟動(dòng)監(jiān)聽(tīng)服務(wù)后創(chuàng)建請(qǐng)求
coap
.request({
pathname: '/temperature/32',//請(qǐng)求內(nèi)容
options: {
}
})
.setHeader("Accept","application/json")//設(shè)置請(qǐng)求頭為json
.on('response', function(res) {
//打印響應(yīng)代號(hào)
console.log('response code', res.code)
if (res.code !== '2.05')
return process.exit(1)
res.pipe(bl(function(err, data) {
//json解碼,輸出響應(yīng)cmd字段對(duì)應(yīng)的值
var json = JSON.parse(data)
console.log(json.cmd)
process.exit(0)
}))
})
.end()
})
測(cè)試
$ node son
->temperature:32
response code 2.05
shutdown