前端的环境
- 开发环境
- 生产环境
- 测试环境
- 预发布环境
- 上线环境
koa
- koa是express超集(进阶版)
- 架构思想
需求: 将express框架 — RMVC框架
RMVC
R – Router 路由
M – Model 数据
V – View 视图
C – Controller 控制器(逻辑)
前后端分离和耦合概念介绍
- 面向过程 – 面向对象 — 面向服务
前端模块化
- CMD ( sea.js )
- AMD ( require.js )
- Common.js
- es6模块化
CMD 和 AMD
define 定义模块
Node.js中使用了Common.js规范(三类)
1. 内置的
2. 第三方的
3. 自定义的
Node.js自定义模块步骤
- 定义
对象 函数 字符串 。。。 - 导出
module.exports || exports - 使用
const 变量名称 = require(‘模块名称’) - 扩展
安全性考虑 封装一下 {}
npm官网发布自定义包(带有一定功能)
操作流程
- 创建一个文件夹
- 创建pageage.json
Yarn init / npm init /cnpm init
快速创建 npm init -y / yarn init -y /cnpm init -y - 注册npm仓库
www.npmjs.com注册一个账号
命令行执行 npm adduser(必须确保你当前的源是npmjs,使用nrm来切换源) - 上传包
npm publish
注意:
1.npm源切换 nrm. npm i nrm -g
2.注意:npm账号需要邮箱认证
Node.js中第三方模块如何使用?
- 安装
初始化生成 package.json 安装对应的包
举例: npm i ‘你所需要安装的包’ -g/-D/-S - 名词说明:
-g -global 全局
-D / --save-dev 开发环境
-S / -save 生产环境
使用Node.js实现一个web服务器
- Node.js中模块的api很多时候可以连缀(链式调用)
- http
1. createServer 创建一个web静态服务器
2. listen 是用来监听当前服务器 - 名词解释
1. port 端口
2. hostname: 域名
3. request 请求, Node.js请求谁
4. response 回应]
5. data 数据
6. encoding; 编码方式 utf8 默认utf8 - write(data,encoding) 给前台发送一个内容
- end() 发送已经结束了
- 可能遇到问题
中文乱码问题
解决方案一:
response.writeHead(200,{
‘Content-Type’: ‘text/html; charset=UTF-8’
})
解决方案2:
response.write(’ ')
const http = require('http');
const port = 8090;
const hostname = 'localhost' // 127.0.0.1
// 格式: http.createServer(callback).listen(prot,hostname,callback)
http.createServer(function(request,response){
// response.writeHead(statusCode,options)
response.writeHead(200,{
'Content-Type': 'text/html'
})
response.write('<head> <meta charset="UTF-8"> </head>')
response.write('<h1> yanyabing : 最帅的杭州H5讲师 </h1>');
response.end()
}).listen(port,hostname,function(){
//在后端控制台输出
console.log('====================================');
console.log(`服务器运行在: https: //${hostname}:${port}`);
console.log('====================================');
})
完整的url构成:
url:
用来做 浏览器 地址 解析的
https: // www.web-yyb.top: 8080 / vue / index.html ? a=1&b=2#a=10
协议: https
域名: www.web-yyb.top
端口: 8080
路径: www.web-yyb.top: 8080 / vue / index.html
查找字符串: a=1&b=2
哈希: #a=10
Node.js中请求数据, 需要跨域吗?
不需要跨域的
同源策略
- 为什么会出现跨域
开发中会有不同的域名和端口等出现?我们需要去获取他们的内容 - 浏览器如何组织跨域
浏览器具有安全策略 —》 同源策略实现 - 跨域的范围是?
浏览器(只有浏览器才会产生跨域,像app是不会产生跨域的)
node.js http.get 后端爬虫
流程
数据抓取 -- 数据清洗 -- 数据格式整理---发送前台(web服务器)
反爬虫:
数据清洗的时候做,数据中用一个其他类型格式数据