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 ...
随机推荐
- Solr建立索引时,过滤HTML标签
原文地址 http://www.joyphper.net/article/201306/188.html 1.在数据库的读取文件data-config.xml 中的entity 标记里边添加 tra ...
- JAVA框架 Spring 约束配置本地资源
一:粘贴约束url:http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.or ...
- BT5R3蛋疼的metasploit升级
刚装了BT5R3,急着想把metasploit升级,原版本是4.5.0,试了网上的各种方法,终于试到了个能成功的,再次记录一下. 系统环境:BT5 R3 1.apt-get update 2.apt- ...
- 使用git初始化本地仓库并提交到远程分支
创建本地文件并提交到github远程分支,步骤如下: 1.通过github创建repository,本例中repository名称为maven_demo,工程为maven + spring + myb ...
- 关于PLC高速计数器使用
今天去面试问我高速计数器,因为没用过,所以直接说--不会.但是自己感觉自己自学电气,说不会太丢人了,所以今天学了PLC的高速计数器.虽然没有书,但是有度娘,还有现成的PLC设备实际检验程序,更有鹏哥和 ...
- c++ 模板参数做容器参数迭代器报错 vector<T>::const_iterator,typename const报错
错误1: template<class T>void temp(std::vector<T>& container){ std::vector<T& ...
- Xcode7如何真机调试
查阅网上Xcode7如何真机调试,教程我觉得都有点繁琐,然后我自己用3步实现真机测试: 1.左上角Xcode --> Perferences --> Accounts --> ...
- 如何在ASP.NET Core中构造UrlHelper,及ASP.NET Core MVC路由讲解
参考文章: Unable to utilize UrlHelper 除了上面参考文章中介绍的方法,其实在ASP.NET Core MVC的Filter拦截器中要使用UrlHelper非常简单.如下代码 ...
- [NOI2003]Editor & [AHOI2006]文本编辑器editor BZOJ1507&BZOJ1269
分析: Splay区间操作裸题,维护出区间信息,按照要求模拟,注意读入格式,并且考虑内存回收(开不下) 附上代码: #include <cstdio> #include <algor ...
- Python 调用 Redis API
安装Redis包 在\Python27\Scripts目录下执行 pip install redis Python操作Redis __author__ = 'Edward' import redis ...