Node.js基本操作1

Node.js

1.http爬虫:

​ 数据请求

​ get

​ request

​ post

案例: 后端爬虫

​ 名词解释:

​ 爬虫: 爬去数据

​ 流程:

​ 后端数据请求 —》 数据分析 —》数据清洗 ----》 数据前台发送

​ 爬虫: 并不是所有网站都能爬取的

​ 反爬虫

​ options 就是一个对象,也是一个配置

2.http web服务器渲染数据发送前端:

	服务器:可以运行在服务端的一个网站

​ 种类:1.web服务器(静态服务器)可以运行在浏览器中的服务器

​ 2.api服务器(后端接口)后端语言暴露一个数据接口用于前端数据请求(ajax fetch)

Node.js中原生创建web服务器:

​ 1,引入http模块:

​ const http=require(‘http’)

​ 2.创建服务器:

​ http.createServer(callback)

​ callback中接收三个参数:request response next

​ 3.监听服务器:

​ listen(port,host,callback)

​ port:端口

​ host:域名

3.解决中文乱码

​ 1.设置请求头:

​ response.writeHead(200,{

​ ‘Content-type’:‘text/html;charset=utf8’

})

​ 2.发送一个meta标签:

​ response.write(’’)

​ 3.toString() 对二进制有效

名词含义:

1.chunk:分片

2.keep-alive:缓存

给前台发送了一个html,这种渲染数据的形式称之为:后端渲染;服务端渲染;ssr

4.前端模块化

​ 1. 问题:为什么前端要使用模块化?

​ 模块化是具有特定功能的一个对象

​ 模块化定义的流程:

​ 1.定义模块

​ 2.导出模块

​ 3.引用模块

​ 好处:1.可以存储多个独立的功能块

​ 2.复用性高

2.种类

  1. AMD( require.js)
  2. CMD ( sea.js )
  3. Common.js

AMD定义一个模块:

AMD:异步的模块定义,提供定义模块以及异步加载模块的机制

​ 提前执行,提前异步进行加载

​ 优点: 依赖如果出现错误可以尽早发现

​ 缺点: 容易产生浪费

define:用来定义模块

/*目录
	a.js
	b.js
*/
//AMD定义 a.js
	define({
	a:1,
	b:2,
	add:function(){}
	})
//AMD引用
	require([./a.js],function(moduleA){
	moduleA指的是定义来的对象
	})
	//require.JS是一个AMD?框架可以异步加载JS文件,依赖前置、异步定义的AMD框架
	//第一个参数是一个**数组**,里面定义一些需要依赖的包
	//第二个参数是一个回调函数,通过变量来引用模块里面的方法;
	

CMD定义模块:**

CMD:通用模块定义,模块加载是按需加载

​ 延迟执行,延迟按需加载

​ 优点: 减少资源浪费

​ 缺点:等待时间长,出错时间延后

define

//CMD
/*
	目录结构
		b.js
		index.js
*/

// 模块定义  b.js
	define(function(require, exports, module) {

    	// 模块代码

    });
//模块引用 index.js
	require('./b.js',function( moduleB ){
        //moduleB就是b模块中导出的内容
	})

Common.js

Node.js使用了Common.js的规范

​ 易错的理解:

​ common.js是属于node的 ×

​ node属于common.js ×

//common.js
/*
	目录结构:
		name.js
		index.js
*/
//模块的定义 name.js
	const nameObj = {
        name: 'lisa '
	}
//模块的导出  name.js
	module.exports = nameObj
//模块的引用
	const nameObj = require('./name.js')

Node.js中Common.js规范的使用三种类型:

​ 1.内置模块(内置模块指的是挂载在Node.js全局对象上的API):自己有的属性,通过点使用的是内置模块

​ 2.自定义模块

​ 1.模块的定义:

//举例
const student = {
    id: 1,
    name: 'Gabriel Yan'
}
const fn = function(){}

​ 2.模块的导出:

// 第一种导出
module.exports = student // 安全性不高  默认导出一个
//第二种导出
module.exports = { //批量导出,按需引用
    student,fn
}

​ 3.模块的·引用:

// 这种引用对应第一种导出
const student = require('./xxx.js')
// 这种引用对应第二种导出
const { student , fn } = require( './xxx.js ' )

​ 3.第三方模块:因为自己处理了了内置所以省略了./nodemoduls

1. 别人已经封装好的模块
2. 这个模块具备一些特定的功能
3. 这些模块存放在  www.npmjs.com 这个网站中
这些模块的文档也记录在内

格式: var/let/const 变量名 = require( 模块名称 )

  总结: 
      第一步,使用npm/cnpm 安装
      第二部,在文件中引入
      第三部,在www.npmjs.com这个网站中找到这个模块的文档,根据文档来使用

-D===–save-dev

//举例
cnpm i jquery -D===cnpm i jquery --save-dev
自定义模块变成第三方模块

​ 1.创建package.json文件 $ npm init -y

​ 2.注册( http://www.npmjs.com )账号

​ 3.自定义模块的上传到( http://www.npmjs.com

​ 4.检查源是不是npm $ nrm ls

​ 5.如果不是要切换源 $ nrm use npm

​ 6.命令行登录npm.js仓库 $ npm adduser

​ 7.创建模块并导出模块

​ 8.查看自定义的包名是否已经被使用以免报错

​ 9.发布自己的包 $ npm publish

Node.js跨域

​ 跨域:

· 前端的跨域 jsonp 和 反向代理(创建一个虚拟后端服务器,让这个后端服务器帮助我们请求数据)

​ 后端跨域 node php java

​ 1.设置请求头

​ 2. 使用第三方的中间件( cors )

​ 中间件: 就是具有一定功能的一个函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值