node-coap模块中json的示例代码缺乏了
.setHeader("Accept","application/json")
,添加后便可正常运行node
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