【问题标题】:using express routing with non-http (coap)使用非 http (coap) 的快速路由
【发布时间】:2016-12-26 12:06:40
【问题描述】:

我正在运行一个 coap 服务器,当我开始添加路由时,维护我自己的路由有点乏味,所以我想我会切换到 express(我已经将它用于 http 服务器)。

现在,鉴于它对server.on("request", (req, res) => {...}) 使用基本相同的格式,我认为它会兼容,但 express 添加了各种不在 coap 规范中的标头。

我想要做的只是为我的 coap 应用程序使用快速路由的便利。这可能吗?我目前正在这样做:

const server = coap.createServer(...);
const app = express();
server.on("request", app);

我最终得到的是这个错误:

 Uncaught Error: Unknown string to Buffer converter for option: X-Content-Type-Options
  at module.exports.toBinary (node_modules/coap/lib/option_converter.js:21:11)
  at OutMessage.setOption (node_modules/coap/lib/helpers.js:56:16)
  at Immediate.write (node_modules/finalhandler/index.js:164:9)

【问题讨论】:

    标签: node.js http express coap


    【解决方案1】:

    我做了一点调试,问题可能与请求标头有关,它向 coap 库发送了意外字段,这对 coap 协议/lib 没有意义。

    例如,在 node_module/finalhandler/index.js 中,我从第 163 行到第 168 行进行了注释,并得到了有关路由处理程序的新错误。

    我也有同样的问题,因为我也需要构建一个 coap 服务器,但我认为在没有 express 的情况下构建路由或构建另一个类似 express 的框架来 coap 更容易。此外,诸如 coap 的 express-load 之类的东西会很有帮助,因为它有助于 commom express 项目。

    【讨论】:

    • 大家好,我带着同样的问题来到这里。你能发布一些可能的解决方案吗?
    • 你们是如何检查请求类型和 URI 的?我可以使用简单的 if 语句,但不确定这是否是最好的方法。
    猜你喜欢
    • 2018-09-27
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 2020-10-10
    • 2017-04-04
    相关资源
    最近更新 更多