function *makeIterator (arr) {
for (let i = 0; i < arr.length; i++){
yield arr[i]
}
}
const gen = makeIterator(['吃饭','睡觉','打豆豆']);
console.log('首先',gen.next().value)//吃饭
console.log('首先',gen.next().value)//睡觉
console.log('首先',gen.next().value)//打豆豆
console.log('首先',gen.next().done)//true
生成器的出现简化了创建生成器这个繁琐的过程,更方便我们使用迭代器。
co
const co = require('co');
const fetch = require('node-fetch');
co(function *() {
const res = yield fetch ('https://api.douban.com/v2/movie/1291843');
const movie = yield res.json();
const summary = movie.summary
console.log(summary)
}
Vscode快捷键
复制一行:shift + alt + ↓ 向下复制一行;shift + alt + ↑ 向上复制一行
Async Await Funciont
生成器
1.迭代器
2.生成器:生成一个返回迭代器的函数,本质上操作迭代器,实际是借助生成器函数进行操作。
co
模块加载
配置bable环境
npm install babel-cli babel-preset-env -D
翻译小工具-fanyi模块
安装
npm install fanyi -g
;命令fanyi study
;gitignore
新建.gitignore文件,通用忽略文件.
爬虫技术
Puppeteer
++借助node服务调用Puppeteer,Puppeteer是无头浏览器,模拟一个真实用户的网页访问,然后注入脚本,解析网页上的文本,提取目标数据.++
Puppeteer Github
安装
编写爬虫脚本tralier-list.js
提交代码
Child Process子进程
Nodejs是单线程,在网站服务的主进程中跑起来若干个子进程,就算是子进程崩溃,主进程还是正常运行。
tasks/movies.js
tralier-list.js进程文件添加配置
request-promise-native服务器端对API请求
安装request
Koa与Mongodb的结合
安装Mongodb
使用mongoose数据建模库
const { connect } = require('../../aa.js'); ;(async () =>{ await connect() } )