Node.js的学习笔记

什么是Node?

  • node.js是基于chrome V8引擎的javaScript的runtime(运行环境)
  • 事件驱动
  • 非阻塞的i/o模型 i/o: input output 输入输出流 正常状况下i/o的操做都是阻塞的(相似于ajax的同步)经常使用的阻塞有网络请求、数据库处理 、文件的读写。。。
  • node.js的包管理工具npm,是全球最大的开源库,生态系统。

Node的优势

优势:高并发特别好。高并发:同时大量的处理数据html

学习node的目的

一、防止甩锅 明确数据交互的错误问题在谁
二、可以书写api 斜杠青年(有第二产业的青年)
三、了解先后端交互流程
四、全栈工程师java

模块化开发

  • 内置模块
  • 第三方模块
  • 自定义模块
    • 建立一个模块(一个js文件一个模块)
    • 导出一个模块(module.exports = name)
    • 引入一个模块而且调用 let 变量名 = require(引入文件的路径)

操做文件以及文件夹

内置模块fs

文件夹的增删改查

  • 增:fs.mkdir('文件路径以及名字(./test)',回调函数(err)={ console.log(err) })
  • 删:fs.rmdir('文件路径名字',回调函数(err)=>{ console.log(err)})
  • 改:fs.rename('旧文件夹','新文件夹',回调函数)
  • 查:fs.readdir('文件夹路径',(err,data)=>{console.log(err,data)})

文件的增删改查

  • 增(建立文件):
    • 写入文件:fs.writeFile('文件夹名字(name.js)','添加的内容(hello word)',回调函数(err)=>{ console.log(err), })
    • 在本来件后添加:fs.appendFile('(文件夹名字)name.js','添加的内容',回调函数(err)=>{console.log(err)})
  • 查(读取文件):fs.readFile('(文件夹名字)name.js',回调函数(err,msg)=>{console.log(err,msg.toString('utf8'))}) 默认读取是二进制数据流buffer,因此进行转换。或者写成fs.readFile('name.txt','utf8',(err,msg)=>{console.log(err,msg)})
  • 删:fs.unlink('文件路径和名字',(err)=>{console.log(err)})

内置模块 url

  • url: 统一资源定位符 url由协议、域名、端口号、path、hash构成。

url的转换(解析url)

  • 将url字符串转为url对象:url.parse(url字符串)
  • 将url对象转为url字符串:url.format(url对象)

内置模块 Query String

  • 将query字符串转为对象:let qs = require('querystring') ; let string = 'user=67&page=65' let obj = qs.parse(string);console.log(obj)
  • 将query对象转为字符串:qs.stringify(obj,'#',':') 第一个参数是要转化的query对象,第二个参数是健值对的以什么符号切分的,第三个参数是键和值之间切分的符号。第2、三参数默认是&和=切分。

第三方模块(俗称插件)

nodemailer(node发送邮件的插件)

  • 一、先安装nodemailer插件
  • 二、建立发送邮件的对象(配置邮件)
    • let transporter = nodemailer.createTransport({ host:'smtp.qq.com',//发送方的邮件类型,例如qq,网易,163等等;具体的经过依赖下的lib下的well-known下的server.json文件查找相关的配置 port:465,//邮箱类型的端口号 secure:true,//端口号为465则为true,其余的全为false auth:{ user:'236799127@qq.com',//发送方的邮箱密码 pass:'fdshfhsajkh'//smtp验证码 这个在邮箱设置的帐户下,点击开启就会有smtp验证码 } })
  • 三、 邮件的信息
    • let info = { from :'<2367991927@qq.com>',//从哪里发出 to : '451464730@qq.com',//接收方邮箱 subject : '标题' , text : '发送的内容' //也能够发送html, html:内容 }
  • 四、执行函数
    • transporter,sendMail(info)

node.js中的Error对象

  • let err = new Error('发生错误')
  • throw err //抛出错误,代码终止执行
  • console.log(err),//打印错误对象,代码继续执行

node.js中的简易爬虫

爬虫案例的原理

  • 一、获取目标网站 经过http.get实现
  • 二、分析网站内容 经过cheerio插件经过这个插件可使用JQ里的各类选择器
  • 三、获取有效信息(下载或者其余操做)

node中的express框架

express的基本使用

经过express框架书写api

登陆接口的逻辑分析

一、接收数据(用户名和密码)
二、处理数据(判断用户名和密码是否正确)
三、返回数据(告诉用户是否登陆成功)node

服务器相关的概念

  • 服务器:
    • 本质上就是一台电脑
    • 须要一个服务器软件开启服务器
    • 服务器ip和端口号
  • 局域网:服务器经过网线(无线链接);每一台电脑都会有一个ip
  • 外网:
相关文章
相关标签/搜索