nodejs了解一下

node

  • chrome V8 运行环境
  • 事件驱动
  • 非阻塞i/o

服务器

  • 基本语法
  • 能操作数据库
  • 能操作本地文件

nvm

  • node版本管理工具

npm

可以使用npm config set registry http://registry.npm.taobap.org来更改为国内镜像源,使下载速度更快

模块化

  • 内置模块(node中提供的可以直接调用)
    • 文件操作
  • 第三方模块
  • 自定义模块
    • 创建一个模块(一个js文件就是一个模块)
    • 导出一个模块(module.exports=name)
    • 引用一个模块并且调用
      (require(‘模块名’))

打印当前目录的目录树

1.实现的效果
2.分析功能点

  • 当前目录结构
  • 分辨是文件还是文件夹

###内置模块

url 统一资源定位符

邮箱验证码案例

  • 第三方模块 nodemailer 可以实现发邮件

    1.从npmjs网站查看nodemailer模板

    2.利用npm命名npm install nodemailer下载

    3.新建一个.js文件将模板拷贝到里面,更改该应信息

    4.在qq邮箱打开STMP服务,配置.js里面的信息

爬虫案例

1.获取目标网站
2.分析网站内容
3.获取有效信息 下载获取其他操作

node 02

通过express 框架 书写api

  • 接收数据
  • get req.query
  • post req.body 需要一个body-parser 插件进行解析
+ 注意数据格式 json x-www-fomr-urencode formdata json

什么是api

前后端分离 前端通过ajax 请求数据
$.get('http://www.baidu/com/user/login?user=123&ps=456',()=>{
})
这就是http://www.baidu/com/user/login?user=123&ps=456接口

前端:1.写界面 2。请求数据 3.数据处理
后端:写api接口

express 基本使用

1.安装 express

npm install express --save 

模块(第三方)的引用 从当前的node_modules一直往上级目录寻找,直到找到为止,找不到这报错

中间件

  • 内置中间件 static
    • 指定一个目录 目录可以被访问
  • 自定义中间件
  • 第三方中间件(body-parser、拦截器)

服务器相关

  • 服务器:
    • 服务器就是一台电脑
    • 服务器软件(apach tomcat ils ngnix node)
    • 服务器ip(确定主机)和端口号(确定软件)
    • 局域网:服务器通过网线(无线)连接 么一台电脑都会有一个ip

非关系数据库(文档)MongoDB

  • 安装

    • 下载
    • 安装 最后一个对号不选
  • mongoose node操作mongoDB

  • 操作 常见终端命令

    • 1.启动 打开终端 输入 mongod(初始化)
    • 2.打开另一个终端 输入 mongo(启动)
    • 3.show dbs (查看数据库名)
    • 4.use 数据库名 进入数据库 如果不存在直接创建
    • 5.show collections 查看该数据有多少个集合(表)
    • 6.db.user.find() 查看表中数据
    • 7.先 use admin 然后 db.shutdownServer(); 数据库服务
  • 使用mongoose操作mongoDB

API文档生成

  • 安装apidoc npm install apidoc -g
  • 在根目录创建一个apidoc.json 写入
      {
        "name": "用户登录注册API",
        "version": "0.1.0",
        "description": "write by GZH",
        "title": "Custom apiDoc ,browser title",
        "url": "http://localhost:3000"
      }
    
  • 运行 apidoc -i ./router -o ./api/user(-i 需要生成文档的目录,-o 生成的文档后存放的目录)

nodejs文件接收插件multer

  • 安装 在根目录下终端 npm install multer --save
  • 注意 如果要过滤掉不符合规则的文件,需要在fileFilter()函数里过滤,fileFilter中的 cb(null, true); cb(null, false);决定是否服务器是否接收该文件的主要函数,true表接收,false表不接收
  • multer阻止下载到本地文章
  • 前端使用form表单要声明了属性enctype=“multipart/fpram-data”,用ajax要设置processData: false,上传图片设置为false,因为data值是FormData对象,不需要对数据做处理
    cache: false, //上传文件不需要缓存,
    contentType: false

跨域问题

  • ajax 同源策略 ( 协议 域名 端口号一致)
  • 解决跨域
    1. cors 安装express中间件(cors) 自己设置头文件信息
    2. 代理跨域
      • 自己写一个代理服务器,服务器与服务器无跨域问题,利用服务端http协议请求目标服务器的参数,再返回给前端.
    3. jsonp

socket的方式(ajax(短连接),socket(长连接))

  • net
  • socket.io 麻烦 兼容性最好
  • websocket h5新增 低版本浏览器不兼容 使用方式简单
    1. 搭建socket 服务器 new WebSocket.server({prot:8080},()=>{}
      ),ws.on(‘connection’)

    2. 前端进行连接 new WebSocket(‘ws://localsocket:8080’) ws.onOpen()

    3. 前端主动发送数据 client.on(‘message’,()=>{})

    4. 后端主动发送数据
      wx.onmessage=()=>{}接收数据
      wx.send()//主动发送数据

    5. 断开连接 ws.on(‘close’) ws.onClose()

  • 什么时候采用长连接
    • 实时刷新
    • 服务器端发起数据

身份验证(session-cookie和jwt)

  • http请求 无状态
  • 登录时候 发布一个加密字符串(用户相关信息)给前端
  • 调用其他接口 将加密字符串 作为参数传递给服务器
  • 根据权限进行验证
  • 需要插件cookie-parser express-session

你可能感兴趣的:(nodejs,前端)