• 什么是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 request

        • request(url, ()=>{})

    • 自定义模块

      • Const name = { name: 'name'} 创建模块

      • module.exports.x = x 导出模块

      • module.exports = {name}批量导出模块

  • 后端解决跨域问题

    • 设置请求头

      • 缺点:每个接口都要设置请求头跨域res.setHeader('Access-Control-Allow-Origin', '*');

    • 反向代理

      • 后端请求数据再发送给前端

    • 使用中间件

      • 需要使用第三方的包cors

  • Node.js读取文件都是二进制(buffer/binary)

回忆一下Node(随时更改,想到什么写什么)的更多相关文章

  1. PHP, Python, Node.js 哪个比较适合写爬虫?

    PHP, Python, Node.js 哪个比较适合写爬虫? 1.对页面的解析能力2.对数据库的操作能力(mysql)3.爬取效率4.代码量推荐语言时说明所需类库或者框架,谢谢.比如:python+ ...

  2. 前端必备之Node+mysql+ejs模版如何写接口

    前端必备之Node+mysql+ejs模版如何写接口 这星期公司要做一个视频的后台管理系统, 让我用Node+mysql+ejs配合写接口, 周末在家研究了一下, 趁还没来具体需求把研究内容在这里分享 ...

  3. 没有什么,开发ASP.NET时随便写写,想到什么写什么

    没有什么,开发ASP.NET时随便写写,想到什么写什么,这次想写点开发过程中,比如在数据库,某一张表中有一个字段,如下: 上面代码示例中高亮字段,数据类型为BIT,它存储的值将为"True& ...

  4. Py修行路 python基础 (七)文件操作 笔记(随时更改添加)

    文件操作流程: 1.打开文件 open() 2.操作文件 read .writeread(n) n对应读指定个数的 2.x中读取的是字节! 3.x中读取的是字符!read 往外读取文件,是以光标位置开 ...

  5. Node.JS实战36:写一个WAF中间件!防黑客,防攻击

    如果用Node.JS做Web服务,很多时候是会选择Express的. 本文,将展示如何如何实现一个WAF中间件. WAF有什么用? WAF即Web Application Firewall,Web应用 ...

  6. Py修行路 python基础 (八)函数(随时更改)

    为何要用函数: 1.解决代码重用的问题 2.提高代码的可维护性,统一维护 3.程序的组织结构清晰,可读性强 定义函数 先定义后使用!!! def funcname(arg1,arg2,.....)  ...

  7. 从零系列--node爬虫利用进程池写数据

    1.主进程 const http = require('http'); const fs = require('fs'); const cheerio = require('cheerio'); co ...

  8. 用C++为nodejs 写组件,提高node处理效率

    昨天研究了下如何用C++和node交互,在node的程序中,如果有大数据量的计算,处理起来比较慢,可以用C++来处理,然后通过回调(callback的形式),返回给node. 首先,先来看看node ...

  9. dotnet调用node.js写的socket服务(websocket/socket/socket.io)

    https://github.com/jstott/socketio4net/tree/develop socket.io服务端node.js,.里面有js写的客户端:http://socket.io ...

随机推荐

  1. 开源配置中心xxl-conf的核心原理分析

    XXL-CONF是一款轻量级的开源配置中心项目,由国内大牛许雪里开发.下面是官方对其优点作出的描述: 一个轻量级分布式配置管理平台,拥有"轻量级.秒级动态推送.多环境.跨语言.跨机房.配置监 ...

  2. Qt编写自定义控件68-IP地址输入框

    一.前言 这个IP地址输入框控件,估计写烂了,网上随便一搜索,保证一大堆,估计也是因为这个控件太容易了,非常适合新手练手,一般的思路都是用4个qlineedit控件拼起来,然后每个输入框设置正则表达式 ...

  3. 123457123456#1#----com.MC.CarWashKidsGames234----前拼后广--洗车游戏mc-mc1111

    com.MC.CarWashKidsGames234----前拼后广--洗车游戏mc-mc1111

  4. win8(x64)下,重新安装delphi 2007时出现“Invalid Serial Number”,如何解决?

    1)在添加删除程序里卸载delphi 2007 2)删除C:\ProgramData\CodeGear 3)删除C:\Program Files (x86)CodeGear 4)删除d:\Progra ...

  5. 17点睛Spring4.1-@Conditional

    17.1 @Conditional @Conditional为按照条件配置spring的bean提供了支持,即满足某种条件下,怎么配置对应的bean; 应用场景 当某一个jar包在classpath中 ...

  6. 09点睛Spring4.1-AOP

    9.1 AOP AOP可以了让一组类共享相同的行为.在OOP中只能通过继承类和实现接口,这样使代码的耦合度增强,且类继承只能为单继承,阻碍更多行为添加到一组类上; 下面演示一个日志系统的实现,简单但不 ...

  7. 基于TreeSoft实现异构数据同步

    一.为了解决数据同步汇聚,数据分发,数据转换,数据维护等需求,TreeSoft将复杂的网状的同步链路变成了星型数据链路.     TreeSoft作为中间传输载体负责连接各种数据源,为各种异构数据库之 ...

  8. C++ 顺序容器(vector,list、deque,stack,queue)

    顺序容器的种类有:vector,list.deque 顺序容器适配器: stack     //先进后出   栈 queue   //先进先出   队列 priority_queue   //也优先管 ...

  9. C++ String 及其与char[]的比较

    在学习C++之前  一般都是学过了C语言了 在C语言中   我们对字符串进行保存操作  使用的是char[] 但是在C++中    string比char[]的使用更为频繁  常见    下面稍微讲一 ...

  10. linux 文件描述符表 打开文件表 inode vnode

      在Linux中,进程是通过文件描述符(file descriptors,简称fd)而不是文件名来访问文件的,文件描述符实际上是一个整数.Linux中规定每个进程能最多能同时使用NR_OPEN个文件 ...