处理非阻塞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());
}
})
}
})

node.js处理url常用方法的更多相关文章

  1. node.js获取url中的各个参数

    实例代码test.js var http=require('http'); var url=require('url'); var querystring=require('querystring') ...

  2. # node中的url常用方法解析

    url字符串是一个结构化的字符串,由好几个有意义部分组成.我们在工作中不可避免的会用到其中的某个部分,最原始的通过字符串截取和正则匹配的方法难免用起来会不太方便和美观,所以在我们的nodejs中提供了 ...

  3. Node.js:url

    在node运行环境中输入url: > url url { parse: [Function: urlParse], resolve: [Function: urlResolve], resolv ...

  4. 88.NODE.JS加密模块CRYPTO常用方法介绍

    转自:https://www.jb51.net/article/50668.htm 使用require('crypto')调用加密模块. 加密模块需要底层系统提供OpenSSL的支持.它提供了一种安全 ...

  5. Node.js中url的详解

    var url = require('url');var str = 'http://zhufengnodejs:123@github.com:80/2016jsnode?name=zfpx& ...

  6. node.js(三)url处理

    1.parse函数的基础用法 parse函数的作用是解析url,返回一个json格式的数组,请看如下示例: var url = require('url'); url.parse('http://ww ...

  7. node.js 的url模块

    var URL = require('url');  var testUrl = "http://www.baidu.com:8080/index.php?content=abc" ...

  8. 34.node.js之Url & QueryString模块

    转自:https://i.cnblogs.com/posts?categoryid=1132005&page=6//引用 var url = require("url"); ...

  9. Node.js的url模块简介

    什么是URL URL是Uniform Location Resource的缩写,翻译为“统一资源定位符”,也就是描述资源位置的固定表示方法.被URL描述的资源可以位于互联网上,也可以位于本地. URL ...

随机推荐

  1. 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(一)环境说明

    关于CDH和Cloudera Manager CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloud ...

  2. leetcode717—1-bit and 2-bit Characters

    We have two special characters. The first character can be represented by one bit 0. The second char ...

  3. python下载安装搭建

    python官网下载python运行环境(https://www.python.org/downloads/),建议下载稳定版本,不推荐使用最新版本 安装 然后我们打开CMD,在里面输入python, ...

  4. Android cannot be cast to android.app.Fragment

    10-21 17:33:45.171: E/AndroidRuntime(7644): java.lang.RuntimeException: Unable to start activity Com ...

  5. day67

    昨日回顾 1 orm 创建表,新增字段,修改,删除字段,不能创建数据库  -字段属性phone=models.CharField(max_length=64,null=True)  -null=Tru ...

  6. Java面试题,Java三大特性之一——多态的理解

    首先我们知道Java是一门面向对象的语言 面向对象三大特性,封装.继承.多态. 封装.继承.多态 ↓ 无论是学习路线,还是众人的口语习惯,都是按照这个这样进行排序,这是有原因的.因为封装好了才能继承, ...

  7. c# Login UI with background picture animation

    准备4张图片 UI control: <Grid x:Class="Test1.MainBgAd" xmlns="http://schemas.microsoft. ...

  8. 20155237方自晨 实验四android开发基础

    提交点一 Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)>第二十四章: 安装 A ...

  9. 如何在web api中使用SignalR

    说明: 在webapi中使用signalr,使用IIS 环境: vs2012, .net4.5 第一步:建web api项目 第二步:nuget导入signalr Install-Package Mi ...

  10. SQL调优日志--内存问题排查入门篇

    概述 很多系统的性能问题,是由内存导致的.内存不够会导致页面频繁换入换出,IO队列高,进而影响数据库整体性能. 排查 内存对数据库性能非常重要.那么我当出现问题的时候,我们怎么排查性能问题呢? 存在问 ...