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

  • 相关阅读:
    Webpack配置开发环境总结
    vue2.0 引入font-awesome
    vue-cli 脚手架项目简介(一)
    CSS3伪类与伪元素的区别及注意事项
    页面滚动到可视区域执行操作
    56. 合并区间
    <leetcode c++>卖股票系列
    面试题 16.01. 交换数字
    542. 01 矩阵
    <leetcode c++> 445. 两数相加 II
  • 原文地址:https://www.cnblogs.com/RocketV2/p/5808778.html
Copyright © 2011-2022 走看看