Blog

Blog

PHODAL

CoAP与物联网系统之返回XML

记得在一开始的时候给IoT-CoAP添加了一个XML的支持,只是因为对于XML的了解似乎不是很深,又因此而挖了一个坑。

jstoxml

这里用到了一个javascript转xml的库

他是这样用的

    var jstoxml = require('jstoxml');

jstoxml.toXML({
  a: '1',
  foo: '',
  b: '2'
});
// Output: <a>1</a><foo></foo><b>2</b>

看上去似乎很方便,一开始也不觉得有什么问题,便将这个库加到了package.json里面了。

IoT CoAP xml

1.一个返回JSON的过程,便是我们需要接受application/xml这样的请求

request_helper.getHandler = function(req, res) {
    switch (req.headers['Accept']) {
        case "application/json":
            qh.returnJSON(req, res);
            break;
        case "application/xml":
            qh.returnXML(req, res);
            break;
    }
};

2.接着在查询完数据,回调

query_helper.returnXML = function(req, res) {
    DBHelper.urlQueryData(req.url, function (result) {
        returnResult.XMLAndCode(result, res);
    });
};

3.我们便可以调用toXML返回XML

resultReturn.XMLAndCode = function (result, res) {
    if (result.length == 2) {
        res.code = '4.04';
        res.end(jstoxml.toXML({
            error: "Not Found"
        }));
    } else {
        res.code = '2.05';
        res.end(jstoxml.toXML(JSON.parse(result)));
    }
};

其他

最后返回的结果是

 <id>1</id><value>is id 1</value><sensors1>19</sensors1><sensors2>20</sensors2>

只是这种结果似乎并不是真正意义上的XML,印象中XML的格式比这个复杂。


或许您还需要下面的文章:

关于我

Github: @phodal     微博:@phodal     知乎:@phodal    

微信公众号(Phodal)

围观我的Github Idea墙, 也许,你会遇到心仪的项目

QQ技术交流群: 321689806

新书《全栈应用开发:精益实践》

这不是一本深入前端、后台、运维、设计、分析等各个领域的书籍。本书以实践的方式,将这一系列的领域及理论知识结合到一起,来帮助读者构建全栈Web 开发的知识体系,并辅以精益及敏捷的思想,来一步步开发Web 应用:从创建一个UI 原型到编写出静态的前端页面;从静态的前端页面到带后台的应用,并部署应用;从Web 后台开发API 到开发移动Web 应用。在这个过程中,我们还将介绍一些相辅相成的步骤:使用构建系统来加速Web 应用的开发;为应用添加数据分析工具来改进产品;使用分析工具来改善应用的性能;通过自动化部署来加快上线流程;从而帮助读者开发出一个真正可用的全栈 Web 应用。同时,我们也将帮助读者把这些步骤应用到现有的系统上,改进现有系统的开发流程。

comment

Feeds

RSS / Atom

最近文章

关于作者

Phodal Huang

Developer, Consultant, Writer, Designer

ThoughtWorks 高级咨询师

工程师 / 咨询师 / 作家 / 设计学徒

开源深度爱好者

出版有《前端架构:从入门到微前端》、《自己动手设计物联网》、《全栈应用开发:精益实践》

联系我: h@phodal.com

微信公众号: 与我沟通

标签