nodeJs 常用模块(一)
url
url.parse()

querystring
querystring.parse( [string] , [分隔符] ) ,解析为js字面量


querystring.stringify() ,将js对象转为字符串

querystring.escape() ,转译

实际上浏览器上也有类似功能

querystring.unscape() ,反转译
http:
开启一个web服务器
const http = require('http')
const port = 8080
const hostname = 'localhost'
const server = http.createServer((request, response)=>{
response.writeHead(200, {'Content-Type': 'application/html'})
response.write('<b>hellow</b>')
response.end()
})
server.listen(port, hostname, ()=>{
console.log(`server runing at http://${hostname}:${port}`)
})
https.request()
get:
const https = require('https')
const options = {
hostname: 'api.douban.com',
port: 443,
method: 'GET',
path: '/v2/movie/in_theaters'
}
let responseData = ''
const request = https.request(options, (response)=>{
// 后端返回的数据编码,默认为buffer
response.setEncoding('utf8')
// 接收后端的数据流,后端的数据会成批量返回
// 通过data事件监听,来收取数据
response.on('data', (chunk)=>{
responseData += chunk
})
// 数据接受完毕的事件
response.on('end', ()=>{
JSON.parse(responseData).subjects.map((item)=>{
console.log(item.title);
})
})
})
request.end()
post:
var http = require('http')
var querystring = require('querystring')
var postData = querystring.stringify({
/** .... **/
})
var options = {
hostname: 'www.baidu.com',
port: 80,
method: 'POST',
path: '/ajax/...',
headers: {
/** ....... **/
'Content-Length': postData.length,
/**.....**/
}
}
var request = http.request(options, (res) => {
console.log('Status:' + res.statusCode);
})
request.on('err', (error) => {
console.log(error);
})
request.write(postData)
request.end()
简单爬虫spire:
node后端解析网页工具:cheerio,其语法与jQuery一致
npm i cheerio -D
const https = require('https')
const cheerio = require('cheerio')
options = {
hostname: 'www.jd.com',
port: 443,
method: 'GET',
path: '/'
}
let responseData = ''
function filterData(data) {
let $ = cheerio.load(data)
let a = $('.cate_menu_item').find('a')
a.each((index, value)=>{
console.log($(value).text());
})
}
const request = https.request(options, (response)=>{
response.setEncoding = 'utf8'
response.on('data', (chunk)=>{
responseData += chunk
})
response.on('end', ()=>{
filterData(responseData)
})
})
request.end()
events 事件
const EventEmitter = require('events')
class Player extends EventEmitter {}
let player = new Player()
player.once('play', (track)=>{
console.log(`正在直播${track}`);
})
player.emit('play', '精绝古城')
player.emit('play', '黄皮子坟')
nodeJs 常用模块(一)的更多相关文章
- NodeJS常用模块介绍
收集了NodeJS开发中常用的一些模块. MVC框架 - Express Express 是轻量灵活的Nodejs Web应用框架,它可以快速地搭建网站.Express框架建立在Nodejs内置的Ht ...
- nodejs常用模块
推荐的入门教程: <七天学会NodeJS> https://github.com/nqdeng/7-days-nodejs <Node.js 包教不包会> https://g ...
- NodeJS 常用模块
NodeJS 模块: n:NodeJS 版本管理/切换 参考: https://github.com/tj/n ExpressJS:Web 框架 参考: http://expressjs.com/ m ...
- NodeJS 常用模块积累
cluster&forever cluster & forever 虽然 nodejs 原生已经提供了 cluster 模块,大部分情况下可以满足我们的基本需求,但这两个模块 clus ...
- nodejs常用模块之url
统一资源定位符(url)充当http服务器用来处理来自客户端的请求的一个地址标签.它为把一个请求发到正确的服务器的特定端口上,并访问合适的数据提供了所有需要的信息.
- Nodejs cluster模块深入探究
由表及里 HTTP服务器用于响应来自客户端的请求,当客户端请求数逐渐增大时服务端的处理机制有多种,如tomcat的多线程.nginx的事件循环等.而对于node而言,由于其也采用事件循环和异步I/O机 ...
- nodejs cluster模块初探
大家都知道nodejs是一个单进程单线程的服务器引擎,不管有多么的强大硬件,只能利用到单个CPU进行计算.所以,为了使用多核cpu来提高性能 就有了cluster,让node可以利用多核CPU实现并行 ...
- atitit 商业项目常用模块技术知识点 v3 qc29
atitit 商业项目常用模块技术知识点 v3 qc29 条码二维码barcodebarcode 条码二维码qrcodeqrcode 条码二维码dm码生成与识别 条码二维码pdf147码 条码二维码z ...
- 《Ansible权威指南》笔记(3)——Ad-Hoc命令集,常用模块
五.Ad-Hoc命令集1.Ad-Hoc命令集通过/usr/bin/ansible命令实现:ansible <host-pattern> [options] -v,--verbose ...
随机推荐
- 【noip2018】【luogu5021】赛道修建
题目描述 C 城将要举办一系列的赛车比赛.在比赛前,需要在城内修建 mm 条赛道. C 城一共有 nn 个路口,这些路口编号为 1,2,…,n1,2,…,n,有 n-1n−1 条适合于修建赛道的双向通 ...
- uoj 36 玛里苟斯
[清华集训2014]玛里苟斯 - 题目 - Universal Online Judge k=1,2,3,4,5各占20pts是提示 应当分开考虑 k=1 拆位,如果第i位有1,则有1/2的概率xor ...
- ML博客链接
http://blog.csdn.net/yingwei13mei/article/category/6602238 各种都有(系统教程):http://www.easemob.com/news/76 ...
- selenium - switch_to.frame()- 内嵌表单的切换
表单嵌套frame/iframe webDriver只能在一个页面上对元素识别和定位,对于frame/iframe表单内嵌页面上的元素无法直接定位,此时就需要通过switch_to.frame()方法 ...
- bzoj3938 Robot
3938: Robot Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 336 Solved: 112[Submit][Status][Discuss ...
- mesos+marathon+zookeeper+docker
http://mesosphere.com/docs/mesosphere/getting-started/single-node-install/ mesos-master --zk=zk://lo ...
- 一元回归_R相关系数_多重检验
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...
- 基于JavaSE阶段下的集合类汇总
一.数组与集合的区别 数组和集合都是用来存储对象的容器,但是,数组只能储存基本数据类型的对象,且长度不可变:而集合是储存引用数据类型的对象,且长度可变,所以,在不知对象数量的具体数值时一般用集合来存储 ...
- [DeeplearningAI笔记]序列模型1.7-1.9RNN对新序列采样/GRU门控循环神经网络
5.1循环序列模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.7对新序列采样 基于词汇进行采样模型 在训练完一个模型之后你想要知道模型学到了什么,一种非正式的方法就是进行一次新序列采 ...
- bzoj 2844: albus就是要第一个出场 高斯消元
LINK 题意:看题目不如看样例解释.给出有n个数的集合,对这些子集中的数求异或,升序统计所有子集得到的数(重复会被计入),询问一个数x,问这个数出现的第一个位置 思路:在这里要求一个所有可能出现的异 ...