从本地主机读取node.js中的请求对象

reading request object in node.js from localhost

本文关键字:请求 对象 js node 主机 读取      更新时间:2023-09-26

我是node.js的新手,我正在尝试使用localhost:XXXX进行一些简单的示例。

我想从节点读取我的请求对象。我有一本书,在书中他们使用cURL(某种程序)来与node通信,而不是浏览器。是否有可能在浏览器地址字段中写一些东西,并将其发送到localhost,并有一个请求对象发送到节点,看起来完全像如果我有一个键入的url到服务器的某个地方?如果是,我该怎么写呢?如果我使用localhost,我必须使用cURL或类似的东西吗?

我是非常新的节点和javascript,所以我不知道我是否使用正确的词。我试过搜索,但我想我不知道该搜索什么词。

这是我的服务器代码:
var port = 3000; 
http.createServer(function (req, res) { 
  var url = parse(req.url); 
  res.writeHead(200, { 'Content-Type': 'text/plain' }); 
  res.end('Hello World'n' + url ); 
}).listen(port); 

当我在地址栏中写http://localhost:3000/hello.com时,我希望我能在浏览器中得到Hello world hello.com,但我得到hello world [object object]

请帮助。

您可以通过测试使用您的常规浏览器。在您的URL地址中输入您在cURL地址中的URL地址。例如:

localhost:3000/index.html

如果你想有更复杂的工具,给你更多的信息关于请求/响应,你可以使用工具,如邮差

在你的代码中使用:

res.end('Hello World'n' + url.parse(req.url, true));

url是一个对象,你需要指定你要调用的属性或方法。

下面是一个如何解析URL的示例。使用同构JavaScript轻松解析URL:

@Vlad Beden给出的上述答案看起来不错,但您可能想要使用以下代码

var http = require("http");
var port = 3000; 
http.createServer(function (req, res) { 
    console.log('Requested method: ', req.method);
    var params = parseUrl(req.url); 
    res.writeHead(200, { 'Content-Type': 'text/plain' }); 
    var data = 'Hello World'
    for(var i=0; i<params.length; i++)
        data += ''n'+params[i]
    res.end(data); 
}).listen(port); 
var parseUrl = function(url) {
    var params = [];
    if(url && url != '' && url != '/') {
        url = url.replace(/^'/|'/$/g, '');
        params = url.split('/');
    }
    return params;
}

您可以尝试http://localhost:3000/hello.comhttp://localhost:3000/hello.com/google.com/more.com/etc。我想建议你打印请求对象console.log(req),并看看理解url,方法,标题等。