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'
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常用方法的更多相关文章
- node.js获取url中的各个参数
		
实例代码test.js var http=require('http'); var url=require('url'); var querystring=require('querystring') ...
 - # node中的url常用方法解析
		
url字符串是一个结构化的字符串,由好几个有意义部分组成.我们在工作中不可避免的会用到其中的某个部分,最原始的通过字符串截取和正则匹配的方法难免用起来会不太方便和美观,所以在我们的nodejs中提供了 ...
 - Node.js:url
		
在node运行环境中输入url: > url url { parse: [Function: urlParse], resolve: [Function: urlResolve], resolv ...
 - 88.NODE.JS加密模块CRYPTO常用方法介绍
		
转自:https://www.jb51.net/article/50668.htm 使用require('crypto')调用加密模块. 加密模块需要底层系统提供OpenSSL的支持.它提供了一种安全 ...
 - Node.js中url的详解
		
var url = require('url');var str = 'http://zhufengnodejs:123@github.com:80/2016jsnode?name=zfpx& ...
 - node.js(三)url处理
		
1.parse函数的基础用法 parse函数的作用是解析url,返回一个json格式的数组,请看如下示例: var url = require('url'); url.parse('http://ww ...
 - node.js 的url模块
		
var URL = require('url'); var testUrl = "http://www.baidu.com:8080/index.php?content=abc" ...
 - 34.node.js之Url & QueryString模块
		
转自:https://i.cnblogs.com/posts?categoryid=1132005&page=6//引用 var url = require("url"); ...
 - Node.js的url模块简介
		
什么是URL URL是Uniform Location Resource的缩写,翻译为“统一资源定位符”,也就是描述资源位置的固定表示方法.被URL描述的资源可以位于互联网上,也可以位于本地. URL ...
 
随机推荐
- pytorch faster_rcnn
			
代码地址:https://github.com/jwyang/faster-rcnn.pytorch 1.fasterRCNN.train():这个不是让网络进行训练,而是让module in tra ...
 - easyui 如何引入
			
一:引入easyui 1:参考官网:http://www.jeasyui.net/ 2:引入 整个文件夹:themes,包括:icon.css.image 等等 3:引入easyui.css ...
 - Android Edittext聚焦时输入法挡住了EditText输入框的两种解决方案
			
方案一.把整个布局文件用ScrollView套住.这样当你聚焦时虽然输入法也能够挡住一些输入框,但是你可以通过手动滑动看被挡住的内容. 方案二.在Activity中设置android:windowSo ...
 - 蓝桥杯之大臣的旅费(两次dfs)
			
Description 很久以前,T王国空前繁荣.为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个 ...
 - haproxy [WARNING] 312/111530 (17395) : config : 'option forwardfor' ignored for frontend 'harbor_login' as it requires HTTP mode.
			
1.经过调查, 2down voteaccepted x-forwarded-for is an HTTP header field, so has nothing to do with the tr ...
 - 串口通信DMA中断
			
这是以前学32的时候写的,那时候学了32之后感觉32真是太强大了,比51强的没影.关于dma网上有许多的资料,亲们搜搜,这里只贴代码了,其实我也想详详细细地叙述一番,但是自己本身打字就慢,还有好多事情 ...
 - Advanced Electronic Engineer
			
Job Title Advanced Electronic Engineer Job Description In this role, you have the opportunity to Be ...
 - NYOJ 35 表达式求值
			
一个模板了 哈哈. 这题由于已经包括了整形.浮点形了,以后也不须要特别处理了. /* 这里主要是逆波兰式的实现,使用两个stack 这里用字符串来模拟一个stack,第一步,将中缀表达式转变为后缀表达 ...
 - OO——电梯作业总结
			
目录 电梯作业总结 程序结构与复杂度的分析 第一次作业 第二次作业 第三次作业 程序BUG的分析 互测 自动评测 有效性 总结 电梯作业总结 程序结构与复杂度的分析 第一次作业 1.设计思路 第一次作 ...
 - 20155307《网络对抗》Web安全基础实践
			
20155307<网络对抗>Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL ...