NodeJS如何在networking模块中实现请求/响应
我是NodeJS的新手,正在使用“net”模块的项目。 我的问题是我们可以使用'networking'模块实现请求,响应模型,我们可以在HTTP模块中实现,也就是说,当用户在浏览器中inputlocalhost:端口号时,我可以向浏览器发送响应。 我可以使用HTTP实现相同的function,但无法理解“Net”和“HTTP”模块之间的基本区别:
我的“networking”模块代码是:
var net = require('net'); var server = net.createServer(function (con) { con.on('data', function (data) { <some code> }); con.on('end', function () { console.log('nodeServer disconnected'); }); }); server.listen(8888, function () { console.log('nodeServer listening port:8888'); });
以下是“HTTP”模块代码:
var http = require("http"); var fs = require("fs"); http.createServer(function(req, res){ res.writeHead(200, { 'Content-Type': 'application/json', "Access-Control-Allow-Origin":"*" }); var obj = JSON.parse(fs.readFileSync('test', 'utf8')); res.write(JSON.stringify(obj, null, 4)); res.end(); }).listen(8888);
我想要在Net模块中实现此目的的原因是,我正在从一个固定的时间间隔,我需要转换为JSON并返回JSON的用户请求时,从一个url获取一些XML。
你可以看看这个postnodejs – net或http模块
它指出http是build立在networking之上的
虽然我看不到在NodeJS文档页面上
基本上,当你需要做比http模块允许的更低级别的事情时,使用net模块。
http :将请求和响应对象中的所有内容都包装在一起,以便与之交互。
净 :给你的TCP套接字本身为你做任何你想要的。
@ neil-shah确实http是基于networking ,你可以在这里看到: https : //github.com/nodejs/node/blob/master/lib/_http_server.js#L4