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

  • 相关阅读:
    理论+实践解析“IT治理”之模式与原则
    iOS开发如何避免安全隐患
    DBA职业发展之路:去“IOE”等挑战之下,DBA将何去何从?
    自动化测试最佳实践(一):从纺锤模型到金字塔模型
    宜信开源|手把手教你安装第一个LAIN应用
    宜信开源|数据库审核软件Themis的规则解析与部署攻略
    开源|性能优化利器:数据库审核平台Themis的选型与实践
    小老板,我300M的网,网速很慢怎么办?
    JSP、ASP、PHP Web应用程序怎么这么多P!
    难道你现在还不知道:C/S和B/S
  • 原文地址:https://www.cnblogs.com/RocketV2/p/5808778.html
Copyright © 2011-2022 走看看