回忆一下Node(随时更改,想到什么写什么)
什么是Node?
Node.js 是一个基于Chrome V8 引擎的JavaScript运行环境
Node.js使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效
事件驱动: 任务执行,发布者,订阅者,事件驱动 ( on emit )
非阻塞: 执行某一个任务的同时也可以执行其他任务
I/O: 输入/输出( 数据库操作,文件系统操作等 )
非阻塞I/O模型: 当我们使用Node.js来实现数据库操作、文件系统等操作时,要进行的异步操作,异步操作的核心传统实现方式就是回调函数
Node中流的概念:
什么是流?
流指的是数据流,是数据的分片传输
为什么Node中要有流呢?
让数据可以实现非阻塞
流使用的场景部分有哪些?
gulp就是最典型的例子
前端模块化:AMD,CMD,Commonjs
Node应用由模块组成,采用Commonjs模块规范
Node中哪些常用的内置模块:
fs模块Fs(文件系统)用于以模仿标准 POSIX 函数的方式与文件系统进行交互。
const fs = require('fs');使用fs模块const inp = fs.createReadStream();读取文件内容,()里面填写的是路径const outp = fs.createWriteStream();流正在写入的文件的路径,()里面填写的是路径
zlib模块zlib(压缩)提供通过 Gzip 和 Deflate/Inflate 实现的压缩功能
const zlib = require('zlib')使用压缩模块const gzip = zlib.createGzip()创建一个空的压缩包
http模块要使用
HTTP服务器和客户端,必须使用http模块const http = require( 'http' )后端服务器有两种类型
1. web服务器 【 静态服务器 】
2. api服务器 【 暴露接口 】api服务器的创建,需要使用一个第三方库 express
请求头部报文
1. general 请求基本信息
2. response Headers 响应头
3. request Headers 请求头
4. 携带参数
- query string paramters get请求
- form data post 请求
爬虫
1.去某一个网站爬取一段数据 -> 数据清洗 -> 后端服务器 -> 发送前端 -> 渲染数据
2.不是所有网站都可以爬取
3.反爬虫 :只需在数据中插入一些图片,即可成为最简单的反爬虫
4.爬虫只能爬取由后端渲染的网站
Event 模块
事件的发布 发布者 订阅者 事件的订阅
第三方模块
从npm.js.com网站拉取第三方模块
安装:
在终端输入
npm init -y创建package.json文件再输入npm i request -S/-D
使用:
比如request模块(数据请求模块)
const requestrequest(url, ()=>{})
自定义模块
Const name = { name: 'name'} 创建模块
module.exports.x = x 导出模块
module.exports = {name}批量导出模块
后端解决跨域问题
设置请求头
缺点:每个接口都要设置请求头跨域
res.setHeader('Access-Control-Allow-Origin', '*');
反向代理
后端请求数据再发送给前端
使用中间件
需要使用第三方的包cors
Node.js读取文件都是二进制(buffer/binary)
回忆一下Node(随时更改,想到什么写什么)的更多相关文章
- PHP, Python, Node.js 哪个比较适合写爬虫?
		
PHP, Python, Node.js 哪个比较适合写爬虫? 1.对页面的解析能力2.对数据库的操作能力(mysql)3.爬取效率4.代码量推荐语言时说明所需类库或者框架,谢谢.比如:python+ ...
 - 前端必备之Node+mysql+ejs模版如何写接口
		
前端必备之Node+mysql+ejs模版如何写接口 这星期公司要做一个视频的后台管理系统, 让我用Node+mysql+ejs配合写接口, 周末在家研究了一下, 趁还没来具体需求把研究内容在这里分享 ...
 - 没有什么,开发ASP.NET时随便写写,想到什么写什么
		
没有什么,开发ASP.NET时随便写写,想到什么写什么,这次想写点开发过程中,比如在数据库,某一张表中有一个字段,如下: 上面代码示例中高亮字段,数据类型为BIT,它存储的值将为"True& ...
 - Py修行路  python基础 (七)文件操作 笔记(随时更改添加)
		
文件操作流程: 1.打开文件 open() 2.操作文件 read .writeread(n) n对应读指定个数的 2.x中读取的是字节! 3.x中读取的是字符!read 往外读取文件,是以光标位置开 ...
 - Node.JS实战36:写一个WAF中间件!防黑客,防攻击
		
如果用Node.JS做Web服务,很多时候是会选择Express的. 本文,将展示如何如何实现一个WAF中间件. WAF有什么用? WAF即Web Application Firewall,Web应用 ...
 - Py修行路  python基础 (八)函数(随时更改)
		
为何要用函数: 1.解决代码重用的问题 2.提高代码的可维护性,统一维护 3.程序的组织结构清晰,可读性强 定义函数 先定义后使用!!! def funcname(arg1,arg2,.....) ...
 - 从零系列--node爬虫利用进程池写数据
		
1.主进程 const http = require('http'); const fs = require('fs'); const cheerio = require('cheerio'); co ...
 - 用C++为nodejs 写组件,提高node处理效率
		
昨天研究了下如何用C++和node交互,在node的程序中,如果有大数据量的计算,处理起来比较慢,可以用C++来处理,然后通过回调(callback的形式),返回给node. 首先,先来看看node ...
 - dotnet调用node.js写的socket服务(websocket/socket/socket.io)
		
https://github.com/jstott/socketio4net/tree/develop socket.io服务端node.js,.里面有js写的客户端:http://socket.io ...
 
随机推荐
- Python之BeautifulSoup的使用示例
			
import requests from bs4 import BeautifulSoup url = 'http://pm25.in/'+city_pinyin r = requests.get(u ...
 - Influxdb修改数据保留策略
			
retention policy: 存储策略,用于设置数据保留的时间,每个数据库刚开始会自动创建一个默认的存储策略 autogen,数据保留时间为永久,之后用户可以自己设置,例如保留最近2小时的数据. ...
 - SUPERSOCKET.CLIENTENGINE 简单使用
			
首先 引用 SuperSocket.ClientEngine.Core.dll和 SuperSocket.ClientEngine.Common.dll 然后 就可以使用ClientEngine了. ...
 - cookie加载不正确的问题
			
华为系统更新后安装了一个谷歌6月安全补丁的东西,然后之前写的调h5页面的部分就出现了问题,后台查过发现是Android端调h5页面时cookie没能带过去,导致了登录失败.于是对setCookie部分 ...
 - C++高精度整数加减乘除模板
			
其中高精度乘法通过了POJ2389,其他没有测过,不过应该是没有问题的. 其中高精度除法返回一对string,分别表示商和余数. 代码: #include <bits/stdc++.h> ...
 - react 生命周期图解
			
参考地址:https://www.cnblogs.com/gdsblog/p/7348375.html
 - Python3之内建模块base64
			
Base64是一种用64个字符来表示任意二进制数据的方法. 用记事本打开exe.jpg.pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的 ...
 - docker里安装kali linux
			
docker里安装kali linux 官网镜像 docker search kali docker pull kalilinux/kali-linux-docker vi /etc/apt/sour ...
 - git的使用学习(二)git的操作使用
			
1.创建版本库 什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都 ...
 - __iter__方法demo
			
class Foo(object): def __init__(self,name,data_list): self.name = name self.data_list = data_list de ...