zoukankan      html  css  js  c++  java
  • node学习错题集

    1.请求路径/favicon.ico

      问题:node http.createServer()创建服务器,用户请求一次,但是服务器显示两次请求:一次为用户请求,一次请求路径为/favicon.ico ??

      代码如下:

    var http = require('http');
    http.createServer(function(req,res){
       console.log( req.url ); 
    })
    .listen(8080);
    console.log("The server is on ...");

      服务器显示如下:

        

      原因:

        第一条时URL地址为用户输入的客户端请求的目标URL地址,"/"代表用户的目标url地址为web应用程序的根目录.

        第二个目标URL地址问浏览器为页面在收藏夹中的显示图标.默认为favicon.ico.而自动发出的请求的目标URL地址.


    2.服务器端重定向

      应用场景:

        用户访问的资源不存在,需要重定向到404界面  

        HTTP协议状态码 302表示重定向

    http.createServer(function(request,response){
        
      response.writeHead(302, {
        'Location': 'your/404/path.html'
        //add other headers here...
      });//重定向
      response.end()
    
    });

    3.注意 相对路径

      开发过程中,前端后端的相对路径不同,需要清晰的分辨

      后端(server.js):

    var http = require('http');
    http.createServer(function(request,response){
       //var url = request.url;//此行错误
      var url = "./"+request.url;//将路径转换成相对于server.js的路径
      fs.readFile(url,
    function(err,data){}); }).listen(8080);

      上述代码路径有问题,比如在浏览器中输入http://localhost:8080/html/index.html

      request.url 的值为 "/html/index.html"

      这时如果直接按照此路径去读取文件,肯定出错;

      因为路径"/html/index.html" 中的第一个"/"  在服务器端(linux) 表示linux根路径

      

      前端:

      如果项目代码目录如下:

        

      其中,server.js是创建服务器的脚本,当 node server.js开启服务器时,前端界面中的路径的根目录('/')就是server.js所在的目录

      比如在浏览器中输入http://localhost:8080/fs/sf.html,由于不存在,所以重定向到 html/404.html,

      以下是404.html中的代码:

    <a href="/html/index.html">回到首页</a><!--绝对路径,根目录就是http://localhost:8080/;此根目录对应着server.js所在的路径;-->
    
    <a href="./index.html">return index</a><!--相对路径,相对于/fs/-->

      当点击“回到首页”,发送的url为 "http://localhost:8080/html/index.html"

      当点击“return index”,发送的url为 "http://localhost:8080/fs/index.html",因此出错 

    4.爬虫时使用request()函数报错

      以下错误并不是ssl/ 错误

      

      仅仅是请求端口写错

      stackoverflow : http://stackoverflow.com/questions/21135637/error140770fcssl-routinesssl23-get-server-hellounknown-protocol

  • 相关阅读:
    【全网最全的博客美化系列教程】文章总目录
    不要再被骗了------QQ盗号原理大揭秘
    努力的孩子运气不会太差,跌宕的人生定当更加精彩
    我的七条人生哲理以及个人学习方法总结
    博客园自定义页面风格设计 后续篇(页面设计模式及代码高亮 鼠标点击效果升级)
    【资料分享】500篇干货解读人工智能新时代
    我的大一生活以及在博客园写博客的这一年
    博客园自定义页面风格设计
    ACM退役记&&回忆录
    留言板
  • 原文地址:https://www.cnblogs.com/RocketV2/p/5808778.html
Copyright © 2011-2022 走看看