zoukankan      html  css  js  c++  java
  • node.js处理url常用方法

    处理非阻塞I/O
    /*
    *回调函数的方法 异步
    */
    /*
    function f(cb){
     fs.readFile('./4',(err,data)=>{
         cb(data.toString()); //回调
    })
    }
    
    f(function(data){
      console.log(data);
    });
    
    */
    function f(){
      fs.readFile('./4',(err,data)=>{
        myEvent.emit('talk',data.toString());//事件进行绑定
    })
    }
    
    //执行 ----发布者
    
    f();
    myEvent.on('talk',(data)=>{
      console.log(data); //data == data.toString()
    })
    
    三URL模块 和queryString模块;
    var queryString = require('quirestring');
    //查询字符串, 
    //queryString.parse(string)将字符串解析成对象;
    let str = 'name:idhorse?age:18?gender:male';
    let obj = queryString.parse(str,'?',':')
    //默认情况下 第二个参数是&,第三个是=
    //解析结果 {name:'idhorse',age:'18',gender:'male'};
    //queryString.stringify()将一个对象解析成一个字符串
    let str2 = queryString.stringify(obj,'&','=');
    //'name=idhorse&age=18&gender=male'
     querystring模块
     querystring.eacape( "" );对给定的 str 进行 URL 编码
     querystring.uneacape( "" );对给定的 str 进行解码
     querystring.stringify()   方法  将一个对象转成字符串
     querystring.parse()  方法  将一个字符串转成对象  
    
    let a = encodeURIComponent(str)//进行编码加密处理
    let b = decodeURIComponent(a);//进行解码处理
    
    
    解析url 
    var http = require('http'),
        urlApi = require('url'),
        server;
    server = http.createSever((request,response)=>{
        response.writeHead(200,{'Content-type':'text/plain;charset=UTF-8'});
    
    if(request.url!='/favicon.ico'){
       let url = urlApi.parse(request.url,true);
       cosoleo.log(url);
       if(url.pathname=='/a.html'){
        res.end('这里请求的是a.html,请求的参数是')
       }
    }
     response.end('收到请求!');
    
    }).listen(3000,()=>{
       console.log('start')
    })
    
    //====
    
    解析url
     var http = require('http'),
         server;
     sever = http.createServer(function(request,response){
        response.writeHead(200,{'Content-type':'text/plain;charset=UTF-8'});
        let url = request.url;
        if(url!= '/favicon.ico'){
         let arr1 = url.split('?');
         let arr2 = arr1[1].split('&');
         let Obj = {};
         arr2.map(function(data,i){
         Obj[data.split('=')[0]]=data.split('=')[1];
    })
         if(arr1[0]=='/a.html'){
           response.end('这里请求的是a.html,请求的参数是'+JSON.stringify(Obj));
         }
      }
      response.end('收到请求!');
    }).listen(3000);
    //=======
    处理post请求
    var http = require('http');
    var server = http.createServer((req,res)=>{
     res.writeHead(200,{'Content-type':'text/plain;charset=UTF-8'});
       console.log('req,url');
       let str = '';
       res.on(data,(data)=>{
       'use strict';
       str+= data;
      });
      res.on('end',()=>{
       console.log(str);
      });
      res.write('收到请求!');
      res.end();
    }).listen(3000);
    // 项目文件上传 formidable
      let http = require('http');
      let urlLib = require('url');
      let fs = require('fs');
      let pathLib = require('path');
      let formidable = reqiure('formidable');
    
      let server = http.createServer((req,res)=>{
      let urlObj = urlLib.parse(req.url,true);
       if(urlObj.pathname==='/'){
         res.readFile('./template/form.html',(err,data)=>{
       res.write(data);
       res.end();
        })
       }
        if(urlObj==='/upload'){
          let form = formidable.IncomingForm();
          form.encoding = 'utf-8';
          form.upLoadDir = _dirname+'/folder';
          form.parse(req,function(err,fields,files){
        if(err)throw err;
        console.log(files);
        let ext = pathLib.exname(files.wangpengde.name);
        let oldPath = files.wangpengde.path;
        let newPath = pathLib.join(_dirname,'/folder/')+files.wangpengde.name;
        fs.rename(oldPath,newPath,(err)=>{
         if(err)throw err;
         console.log(ext);
         res.writeHead(200,{'content-type':'text/plain;charset=UTF-8'});
         res.write('成功!');
         res.end();
        })
       })
       }
    })
      
     server.listen(3000,()=>{
      console.log('start');
      })
    
      三. http模块
      const http = require('http');
      const  cheerio = require('cheerio');
      http.get('http://www.easyvoa.com',function(res){
        if(res.statusCode ==200){
          let str = '';
          res.on('data',(data)=>{
              str += data;
          });
          res.on('end',()=>{
            const $ = cheerio.load(str);
            const titles = $('.title_a');
          for(let i = 0; i<titles.length ;i++){
             console.log(titles.eq(i).text());
          }
          })
        }
    })
  • 相关阅读:
    【Luogu】P1402 酒店之王 题解
    CSP/S 2019 游记
    【Luogu】P1306 斐波那契公约数 题解
    【Luogu】P1072 Hankson 的趣味题 题解
    字符串函数
    对数换底公式
    round(x,y)和format(x,y)
    约束和索引
    复合主键对外键的影响
    外键
  • 原文地址:https://www.cnblogs.com/l8l8/p/9077154.html
Copyright © 2011-2022 走看看