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 常用模块(一)的更多相关文章

  1. NodeJS常用模块介绍

    收集了NodeJS开发中常用的一些模块. MVC框架 - Express Express 是轻量灵活的Nodejs Web应用框架,它可以快速地搭建网站.Express框架建立在Nodejs内置的Ht ...

  2. nodejs常用模块

    推荐的入门教程: <七天学会NodeJS>  https://github.com/nqdeng/7-days-nodejs <Node.js 包教不包会> https://g ...

  3. NodeJS 常用模块

    NodeJS 模块: n:NodeJS 版本管理/切换 参考: https://github.com/tj/n ExpressJS:Web 框架 参考: http://expressjs.com/ m ...

  4. NodeJS 常用模块积累

    cluster&forever cluster & forever 虽然 nodejs 原生已经提供了 cluster 模块,大部分情况下可以满足我们的基本需求,但这两个模块 clus ...

  5. nodejs常用模块之url

    统一资源定位符(url)充当http服务器用来处理来自客户端的请求的一个地址标签.它为把一个请求发到正确的服务器的特定端口上,并访问合适的数据提供了所有需要的信息.

  6. Nodejs cluster模块深入探究

    由表及里 HTTP服务器用于响应来自客户端的请求,当客户端请求数逐渐增大时服务端的处理机制有多种,如tomcat的多线程.nginx的事件循环等.而对于node而言,由于其也采用事件循环和异步I/O机 ...

  7. nodejs cluster模块初探

    大家都知道nodejs是一个单进程单线程的服务器引擎,不管有多么的强大硬件,只能利用到单个CPU进行计算.所以,为了使用多核cpu来提高性能 就有了cluster,让node可以利用多核CPU实现并行 ...

  8. atitit 商业项目常用模块技术知识点 v3 qc29

    atitit 商业项目常用模块技术知识点 v3 qc29 条码二维码barcodebarcode 条码二维码qrcodeqrcode 条码二维码dm码生成与识别 条码二维码pdf147码 条码二维码z ...

  9. 《Ansible权威指南》笔记(3)——Ad-Hoc命令集,常用模块

    五.Ad-Hoc命令集1.Ad-Hoc命令集通过/usr/bin/ansible命令实现:ansible <host-pattern> [options]    -v,--verbose  ...

随机推荐

  1. Linux系统启动详解(一)

    本篇主要以Centos为例,讲述整个Linux系统启动过程,包括了grub引导,initramfs流程,/sbin/init执行rc.sysinit及rc的大体流程. 另外,本篇有一个实例来说明,将整 ...

  2. Linux之系统信息操作20170330

    介绍一下Linux系统中一些自带信息的获取操作等,首先从源码中找到系统信息结构体进行分析. 1.系统信息结构体说明与获取方法: 含义: struct sysinfo { long uptime;    ...

  3. 用Visual C#开发基于OpenCV的Windows应用程序

    http://blog.163.com/wangxh_jy/blog/static/28233883201001581640283/ 关于详细的配置及程序运行截图,请下载:http://downloa ...

  4. Spring MVC @ModelAttribute详解

    被@ModelAttribute注释的方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL的用法来说,要谨慎使用. 我们编写控制器代码时,会将保存方法独立 ...

  5. PID控制算法的C语言实现一 PID算法原理

    本系列是转载............. 全部的程序有一个共同点:就是我没认真去调pid的参数 在工业应用中PID及其衍生算法是应用最广泛的算法之一,是当之无愧的万能算法,如果能够熟练掌握PID算法的设 ...

  6. Hdu1255 覆盖的面积

    覆盖的面积 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  7. phpstorm改变文件编码由utf变为gbk

    PhpStorm是一个轻量级且便捷的PHP IDE,其旨在提供用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查. 由于PHPStorm编辑器默认是UTF-8编码 如果开发的是 ...

  8. "Access restriction: The type BASE64Encoder is not accessible due to restrict"问题解决

    问题如题: Eclipse中有一种叫做存取限制的机制,来防止你错误使用那些非共享的API.通常来说,Eclipse做的是对的,因为两点,我们不想要使用非共享API的,而且Eclipse知道什么是共享的 ...

  9. 2-sat基础题 BZOJ 1823

    http://www.lydsy.com/JudgeOnline/problem.php?id=1823 1823: [JSOI2010]满汉全席 Time Limit: 10 Sec  Memory ...

  10. Codeforces 450B div.2 Jzzhu and Sequences 矩阵快速幂or规律

    Jzzhu has invented a kind of sequences, they meet the following property: You are given x and y, ple ...