如何使用节点' http'重定向到目标网址

时间:2017-10-26 13:08:10

标签: javascript html node.js http

我正在执行下面的代码段,但它没有重定向到实际页面。

var http = require('http');

var options = {
  host: 'google.com',
  port: 80,
  path: '/search?q=hello+world'
};

http.get(options, function(resp){
resp.setEncoding('utf8');
  resp.on('data', function(chunk){
    //do something with chunk
console.log('================\n\n', chunk);
  });
}).on("error", function(e){
  console.log("Got error: " + e.message);
});

命令开火:

node sample.js

输出:

================

 <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.co.in/search?q=hello+world&amp;gws_rd=cr&amp;dcr=0&amp;ei=Wd3xWd_nBITovgSl9bXwCA">here</A>.
</BODY></HTML>

我希望得到整个页面的HTML而不是这个,而不是我想要hello world的结果。

3 个答案:

答案 0 :(得分:0)

使用resp.redirect('url');重定向到所需的网页。

基本上node js是针对create server开发的。但是它显然已经来到server side ..因此它很难在core node js中进行应用..你可以尝试至少任何frameworks,例如express js .. https://expressjs.com/只需通过此strong & easy & famous框架..如果您不喜欢它,请转到另一个

答案 1 :(得分:0)

尝试使用而不是utf8 - “utf-8”;用短划线标志

答案 2 :(得分:0)

您真正想要的是遵循重定向。有关可能的答案,请参阅此其他问题:How do you follow an HTTP Redirect in Node.js?