处理非阻塞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. mysql主从复制亲测,以及注意事项

    本人亲测,windows作为mysql主服务器,linux作为从服务器,使用两个linux配置步骤都一样,测一遍而已:区别配置文件在于windwos是my.ini.linux在/etc/my.cof ...

  2. JMX RMI 攻击利用

    攻击者通过构造恶意的MBean,调用 getMBeansFromURL 从远程服务器获取 MBean,通过MLet标签提供恶意的MBean对象下载. 前提条件: 允许远程访问,没有开启认证 (com. ...

  3. 服务发现系统etcd之安装和使用

    一.概述 etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现.etcd是由CoreOS开发并维护的,灵感来自于 ZooKeeper 和 Doozer,它使用Go语言编写,并通过Raft一致 ...

  4. Python中__init__()方法注意点

    此文转自https://www.cnblogs.com/zyxstar2003/archive/2011/03/21/1989954.html 1.__init__并不相当于C#中的构造函数,执行它的 ...

  5. java读写properties配置文件方法

    1.Properties类 Properties类表示了一个持久的属性集.Properties可保存在流中或从流中加载,属性列表中的key和value必须是字符串. 虽然Properties类继承了j ...

  6. jqgrid 设置冻结列

    有时,jqgrid表格的列非常多,而表格的宽度值是固定的,我们需要在表格底部出现滚动条,并且固定前面几个列作为数据参照项,如何实现? 需要用的jqgrid冻结列,步骤如下: 1)设置需要冻结的列属性, ...

  7. 20155238 《JAVA程序设计》实验三(敏捷开发与XP实践)实验报告

    实验内容 敏捷开发与XP实践 XP基础 XP核心实践 相关工具 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 2.完成实 ...

  8. 2018-3-7 20155317 王新玮 Exp1 PC平台逆向破解(5)M

    2018-3-7  20155317  王新玮 Exp1 PC平台逆向破解(5)M 任务要求:手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. NOP.JNE.JE.JMP.CM ...

  9. 20155325 Exp8 Web基础

    实验要求 (1).Web前端HTML(0.5分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. (2).Web前端javascipt(0 ...

  10. 【Qt】QLabel之动态阴影边框

    效果如下: 实现思路参考了下面的文章: Qt 之 QPropertyAnimation 该文章是自定义属性alpha,原理类似,代码如下: //在头文件加入 Q_PROPERTY(int iBorde ...