Node.js实现coap响应json(二)

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,833评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,735评论 25 708
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,312评论 6 342
  • 今天的作业好简单呀,画得很快。感觉整个画面颜色都很鲜艳,线条也很明朗,水果很可爱,看起来令人愉悦,有一种夏日的清凉...
    金炭阅读 248评论 1 1
  • 我們使用艾威的Duo X-Bike時,也可以使用App,裏面已經有藍芽系統了,只要去下載艾威的App即可,有And...
    蔡立人阅读 682评论 0 0

友情链接更多精彩内容