使用Express路由与非HTTP(CoAP)

3
我正在运行一个coap服务器,随着我开始添加路由,自己维护路由有点繁琐,所以我想换成express(我已经在http服务器中使用了它)。
现在,考虑到它基本上使用相同的格式server.on("request", (req, res) => {...}),我认为它应该是兼容的,但是express添加了一些不在coap规范中的头部信息。
我想做的就是在我的coap应用程序中只使用express路由的方便性。这可能吗?我目前正在做这个:
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)
1个回答

0

我进行了一些调试,问题可能与请求头有关,它发送了意外的字段给coap库,这对于coap协议/库没有意义。

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

我也遇到了同样的问题,因为我需要构建一个coap服务器,但我认为不使用express构建路由或构建另一个类似于express的框架到coap会更容易。此外,像express-load这样的东西对于coap也是一个很好的帮助,因为它可以帮助在常见的express项目中使用。


1
嘿,大家好,我和你们一样遇到了同样的问题。你们能否发布一些可能的解决方案? - Andrea Fresa
你们是如何检查请求类型和URI的?我可以使用简单的if语句,但不确定是否是最好的方法。 - Luke Galea

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接