NodeJS如何在网络模块中实现请求/响应

时间:2014-10-29 11:35:17

标签: javascript json node.js http

我是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返回给用户。

2 个答案:

答案 0 :(得分:0)

你可以看一下这篇文章 nodejs - net or http module

它声明http建立在net

之上

我无法在NodeJS doc页面上看到这个

http://nodejs.org/api/net.html

http://nodejs.org/api/http.html

答案 1 :(得分:0)

基本上,当您需要执行比 http 模块更低级别的操作时,您可以使用 net 模块。

http :将请求响应对象中的所有内容包装起来,供您进行互动。

net :为您提供TCP套接字,让您随心所欲。

@ neil-shah确实 http 基于 net ,您可以在此处看到: https://github.com/nodejs/node/blob/master/lib/_http_server.js#L4