Node.js实现coap响应json(二)
node-coap模块中json的示例代码缺少了
.setHeader("Accept","application/json")
,添加后即可正常运行
结合注释理解代码
const coap = require('coap') // or coap , bl = require('bl')//创建服务器coap.createServer(function(req, res) { if (req.headers['Accept'] != 'application/json') { res.code = '4.06' return res.end() } //得到请求数据并解析 var data = req.url.split('/') console.log(data[1] + ':' + data[2] + '\n') //设置响应的格式为json res.setOption('Content-Format', 'application/json') //发送响应 res.end(JSON.stringify({ cmd: "shutdown" }))}).listen(function() {//启动监听服务后创建请求 coap .request({ pathname: '/temperature/32',//请求内容 options: { } }) .setHeader("Accept","application/json")//设置请求头为json .on('response', function(res) { //打印响应代号 console.log('response code', res.code) if (res.code !== '2.05') return process.exit(1) res.pipe(bl(function(err, data) { //json解码,输出响应cmd字段对应的值 var json = JSON.parse(data) console.log(json.cmd) process.exit(0) })) }) .end()})
测试
$ node son->temperature:32 response code 2.05 shutdown