我是NodeJS的新手,正在开展一个我正在使用的项目' net'模块。我的问题是我们是否可以使用' 模块实现请求,响应模型,因为我们可以在 HTTP 模块中实现,即我希望在用户输入localhost时:浏览器中的端口号我可以向浏览器发送响应。我可以使用HTTP实现相同的目标,无法理解' Net' 和' HTTP' 模块之间的基本区别:
我的网络'模块代码为:
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');
});
以下是&#39; HTTP&#39;模块代码:
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 模块中实现它的原因是我在固定间隔后从URL获取一些XML,我需要将其转换为JSON并在请求时将JSON返回给用户。
答案 0 :(得分:0)
你可以看一下这篇文章 nodejs - net or http module
它声明http建立在net
之上我无法在NodeJS doc页面上看到这个
答案 1 :(得分:0)
基本上,当您需要执行比 http 模块更低级别的操作时,您可以使用 net 模块。
http :将请求和响应对象中的所有内容包装起来,供您进行互动。
net :为您提供TCP套接字,让您随心所欲。
@ neil-shah确实 http 基于 net ,您可以在此处看到: https://github.com/nodejs/node/blob/master/lib/_http_server.js#L4