处理非阻塞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. PHP实现微信发红包功能2

    <?php class wxPay { //配置参数信息 const SHANGHUHAO = "1430998xxx";//商户号 const PARTNERKEY = & ...

  2. 飞冰ICE

    一. 飞冰目标与愿景(同时也概况飞冰是什么) 飞冰是一套基于 React 的中后台应用解决方案,在阿里巴巴内部,已经有 270 多个来自几乎所有 BU 的项目在使用.经过 2 年的发展,飞冰已经是中后 ...

  3. 压缩tar: Removing leading `/’ from member names

    这个错误根据网上的很多说法都是谁 缺少-P参数造成的,只需要使用 -zcvfP即可解决问题,经验证并不是 网上很多文章都是互相抄写的,我引起的这个问题的原因是参数使用的方式不对 -f参数是用来制定压缩 ...

  4. HDU1863(Kruskal+并查集水题)

    https://cn.vjudge.net/problem/HDU-1863 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可). ...

  5. ROS初级教程 cmake cmakelist.txt 的编写教程

    有很多 的时候我们使用别人的程序包.然后添加东西的时候缺少什么东西,会使程序编译不过去,甚至无法运行,接下来介绍一下cmakelist.txt 的每一行的作用.为了以后添加和修改方便. 2.整体结构和 ...

  6. P2157 [SDOI2009]学校食堂Dining

    题目描述 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴.当然,不同的人口味也不一定相同,但每个人的口味都可以用一个非负整数 ...

  7. mysql show profiles 使用分析sql 性能

    Show profiles是5.0.37之后添加的,要想使用此功能,要确保版本在5.0.37之后. 查看一下我的数据库版本 MySQL> Select  version(); +-------- ...

  8. ETH—Lwip以太网通信

    第39章     ETH—Lwip以太网通信 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/ ...

  9. 降阶法计算行列式方法有个地方有Bug(原文也已更正,此为更正后部分)

    今天用此函数做方程求解时发现有误,特此更正: /// <summary> /// 降阶法计算行列式 /// </summary> /// <param name=&quo ...

  10. Centos7 安装ELK日志分析

    1.安装前准备 借鉴:https://www.cnblogs.com/straycats/p/8053937.html 操作系统:Centos7 虚拟机  8G内存  jdk8+ 软件包下载:采用rp ...