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

NodeJS How to implement request/response in net module

本文关键字:实现 请求 响应 模块 net NodeJS      更新时间:2023-09-26

我是NodeJS的新手,正在处理一个使用"net"模块的项目。我的问题是,我们是否可以使用'net'模块来实现请求、响应模型,就像我们在HTTP中可以实现的那样,即我希望当用户在浏览器中键入localhost:端口号时,我可以向浏览器发送响应。我可以使用HTTP实现相同的功能,但无法理解'Net'‘HTTP’模块之间的基本区别:

我的"Net"模块代码是:

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模块中实现这一点的原因是,我在固定的时间间隔后从url中获得一些XML,我需要将其转换为JSON,并在请求时将JSON返回给用户。

您可以看看这篇文章nodejs-net或http模块

它指出http是建立在网络之上的

通过,我在NodeJS文档页面上看不到这一点

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

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

基本上,当您需要做比http模块允许您做的更低级别的事情时,您可以使用net

http:封装请求响应对象中的所有内容,供您交互。

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

@neil-shah实际上http是基于net的,您可以在这里看到:https://github.com/nodejs/node/blob/master/lib/_http_server.js#L4