我是node.js的新手,在上周末潜入了它,并通过各种示例和小教程玩得很开心。 现在我想为我的局域网开展一个小项目,并有一些问题让我自己走向正确的方向。
设定:
我的局域网上运行了服务器服务。可以通过TCP和/或HTTP(可以在特定端口上启用或禁用TCP或HTTP或两者)与该服务进行通信,并根据请求通过JSON发送和接收数据。
我基本上想要做的是为该服务创建一个基于node.js的Web接口,通过Web浏览器接收和发送JSON数据。
问题:
我已经知道如何基于node.js设置http服务器。但是现在我不知道如何创建一个基于node.js的客户端,它位于服务和webbrowser客户端之间,用于将数据从客户端传递到服务器,反之亦然。像路由器或代理的东西。
这是基于客户端(webbrowser)观点的基本方案:
发送:Web浏览器请求 - > node.js routes - >服务收到 接收:Webbrowser收到< - node.js routes< - service responds
的问题:
- 转到TCP还是HTTP? (可能禁用HTTP服务器会节省一些资源) - 可能已经由this post回答了
- 是否有符合我需求的node.js软件包?
- 去一个框架(表达式?)或者说plain node.js就够了吗?
- 任何提示赞赏:)
编辑:
- 是否可以绑定node.js中的eth0之类的网络设备而不是定义ip地址?
感谢您的帮助&&最好的问候 cefra
答案 0 :(得分:1)
没有理由不能拥有REST HTTP服务。
使用类似express
的内容来处理路由。
如果我正确理解您的问题,那么您可以在某个TCP端口上使用“foobar”编写Web服务,您可以通过该端口连接到节点。
所以,如果你使用express,你会写一些类似
的东西app.get("/resources/", function(req, res) {
var socket = new net.Socket();
socket.connect(port, host, function() {
socket.on("data", function(json) {
res.contentType("json");
res.send(json);
socket.end();
});
socket.write(...);
});
});
所以基本上你已经编写了一个http中间人,它通过TCP联系你的服务,然后根据你的HTTP请求的响应写下数据。