NODE笔记

  1. PHP是一个做后端的语言,让你的页面可以让全世界的人看到。

  2. nodejs 和php一样也是一个做后端的语言,同样也能让全世界人看到你的页面

  3. node全称叫 node.js 如 jquery.js vue.js angular.js react.js.

  4. javascript 这个语言是前端的核心内容, node使用的也是javascript的语法

  5. node适合全栈开发

    计算机 是 1946年发明的

    nodejs 是 2009年发明

    C 是 1972年发明的

    PHP 是 1996年发明的

/*************************************************************************/

  1. nodejs具有一定的时代性。
    6.1 nodejs使用js语法容易实现全栈
    6.2 nodejs通过npm管理,具有完善的生态
    6.3 nodejs最大的特点是非阻塞I/O

  2. 复习一下 JS — javascript
    let和var : 都是声明变量。 let不具备变量提升,let块级作用域。
    const: 声明常量的关键字。

    jquery的ajax:
    $.ajax({
    url: 表示请求的地址
    type: 请求方式
    dataType: 返回的数据类型
    data: 发送的数据
    四个回调:
    success: 成功调用
    error: 错误调用
    complete: 完成调用,不管成功还是失败
    beforeSend: 发送前调用

  3. 块级作用域:
    for(var i=0;i<3;i++){
    setTimeout(function(){
    console.log(i)
    })
    } 打印结果 3 3 3
    原因: let具有块级作用域

9 ?node -v 在黑窗口中输入,是查看node的版本
npm -v 查看npm的版本 【在安装node的时候会自动安装 npm】

10 ? node 如何使用:
10.1 创建js文件。
10.2 进入js文件所在的目录:打开黑窗口, 输入cd 空格 然后把目录直接拖入到黑窗口,点击回车
10.3 可以通过dir 查看当前路径下的文件
★ 10.4 可以通过node 文件名称 运行相关js文件

【在其他盘符下,创建js文件,需要切换盘符   盘符名称: 点击回车。 默认是c盘符】
【如: d:  点击回车】
  1. ★ 在前端中 像alert document console 都是window这个全局对象的属性
    ★ 在后端(nodejs)中 像console 都是global这个全局对象的属性

    Q: 什么是全局对象
    A: 拿过来就用的对像就是全局对像

  2. 总结一下:四个全局对象: console 时间系列 _ _dirname _ _filename

13 ★★★就是整个node分为3个部分:
一: 全局对象部分
二: 核心模块部分
三: 外部模块部分

14 介绍一下核心模块: 模块就是js文件
核心模块就是nodejs开发团队写的js文件
不是nodejs团队写的js文件就叫做外部模块

  1. path核心模块: 是对路径的操作。我们掌握两个方法: parse 解析路径 join 合并路径

  2. fs核心模块:表示file system 文件系统。 因此fs是对文件的操作。
    可以认为: 在windows中一切都是文件【出来文件夹和快捷方式】
    可以说: 对文件的操作就表示文件的增删该查重命名读写

  3. ★★★回调函数:
    function foo(a){
    a() //函数后壁那加上括号表示调用
    }

foo(function(){
console.log(‘hello’)
})

用函数作为参数就是回调函数

回调函数作用: 干完一件事以后在代码最后执行
  1. fs核心模块至关重要的14个方法:

    1. fs.writeFileSync 同步写文件 2个参数:1.文件名称 2. 写入内容
    2. fs.writeFile 异步写文件 3个参数:1.文件名称 2. 写入内容 3.回调函数
    3. fs.readFileSync 同步读文件 1个参数:1.文件名称 返回值是读到的内容
    4. fs.readFile 异步读文件 2个参数:1.文件名称 2.回调函数 回调函数中的第二个参数是读到的内容
    5. fs.appendFileSync 同步追加文件 2个参数: 1. 文件名称 2. 追加内容
    6. fs.appendFile 异步追加文件 3个参数: 1.文件名称 2.追加内容 3.回调函数
    7. fs.unlinkSync 同步删除文件 1个参数: 1.文件名称
    8. fs.unlink 异步删除文件 2个参数: 1. 文件名称 2. 回调函数
    9. fs.renameSync 同步重命名文件 2个参数: 1.源文件名称 2. 修改后的文件名称 【通过rename还可以移动文件】
      10 fs.rename 异步重命名文件 3个参数: 1.源文件名称 2. 修改后的名称 3 回调函数 【通过rename还可以移动文件】
      11 fs.mkdirSync 同步创建文件夹 1个参数: 文件夹名称
      12 fs.mkdir 异步创建文件夹 2个参数: 1. 文件夹名称 2.回调函数
      13 fs.rmdirSync 同步删除文件夹 1个参数: 1. 文件夹名称
      14 fs.rmdir 异步删除文件夹 2个参数: 1. 文件夹名称 2.回调函数
  2. 【提高提】

    function foo(a,b,c){
    console.log(a© + b)
    }

    foo(function(x){ return x*2 },5,8)

  3. ★★★★★★ 回调实现的 --> 异步 —> 非阻塞

21 核心模块 events 这个核心模块表示对事件的操作
1. 引用事件events后,一定要实例化: EventEmitter

2. 绑定事件的3种方法: addListener  on   once
3. 删除事件: removeAllListeners   removeListener
4. 触发事件: emit

22 *核心模块–Stream 在这里的流就是字节流
流分为:毒瘤(读流) 和 血流(写流)
读流和写流可以通过fs模块创建

fs创建读流:
fs.createReadStream()

fs创建写流
fs.createWriteStream()
  1. Buffer总结:

    1. Buffer是全局对象,可以拿过啦直接用

    2. 创建Buffer的方法:
      2.1 Buffer.alloc()
      2.2 Buffer.from()
      2.3 new Buffer()

    3.buffer对象的方法:
    3.1 length
    3.2 toString
    3.3 write

  2. http模块★★★

    1. http属于核心模块
      【扩展】 只要你电脑上的程序需要上网,这个程序就会有一个端口号, ipconfig 看自己的ip
      在这里插入图片描述

26.以后提交数据时,只能用ajax!

27.新的核心模块: querystring 作用就是把 a=b&c=d 转化成 {a:b,c:d} 【path fs events http querystring】
1. parse 解析 a=b&c=d

28.其他核心模块:
os: os 是 1.operation 2.system 的缩写 表示操作系统。 因此通过os核心模块可以获得当前操作系统的一些信息
3.platform: 表示当前操作系统名称
cpus: 表示当前cpu的核数,这个方法返回的是一个数组,数组的长度表示cpu的核数
arch: 表示当前cpu的架构

4.process: 进程  运行时的程序就是一个进程 
	pid 得到当前nodejs进程的进程号
	5.exit 退出当前进程

6.util: 提供nodejs一些附加功能的模块
	7.inherit: 继承
	isArray() isBoolean() isString() isObject() 判断当前对象是否是这些类型。

7.child_process:子进程 nodejs 是单线程,多进程【使用nodejs启动一个qq就是多进程】
	7.1 如何通过nodejs的子进程启动其他程
	★★★创建子进程的3个方法: 1. exec  2. fork   3.spawn
  1. 大家发现require 也是拿过来就能用所以require也是全局对象
    require
    module.exports 8. module模块 exports 导出,曝光

  2. 外部模块:
    任何人都可以写的js文件,就是外部模块。我们如何使用别人写的外部模块
    在安装nodejs的同时,会自动安装npm,npm就可以帮助我们使用外部模块

    npm = node package management nodejs 包(模块)管理工具

  3. 使用外部模块步骤:

    1. npm install 模块名称 ----- 安装模块
    2. 通过require(模块名称) ----- 引用模块
  4. npm其他指令:
    npm install 模块名称 -------------- 安装模块
    npm ls --------------- 查看当前安装了那些模块
    npm root --------------- 查看当前模块安装在哪里

    npm install -g 模块名称 ------------ 全局安装模块
    npm ls -g ------------ 查看全局安装了那些模块
    npm root -g ------------ 查看全局模块安装的路径

  5. gulp --就是一个外部模块!
    gulp 是自动化构建工具! — > 当前主要任务就是压缩!
    gulpfile.js 是gulp的配置文件 ★★
    default任务可以直接通过gulp运行 ★★
    压缩js使用gulp-uglify
    压缩html使用gulp-htmlmin
    压缩css使用gulp-cssmin

  6. package.json 就是一个项目的户口本,记录一个项目相关的信息。用json的格式记录项目的相关信息

  7. express 外部模块:其他他就是一个加强版的http

    ★在express中,设置静态路径的方法是 static

    静态文件: 只要是html页面中 通过src或href 引用的就是静态文件

    ★用于解析post提交数据的外部模块: body-parser

  8. 核心内容 — 使用nodejs 做web项目的最基本的八个步骤。

    第一步: express -e 项目名称 || 创建项目总体框架

    第二步: cd 项目名称 || 进入项目目录★★

    第三步: npm install || ★★★ 安装package.json中依赖项(依赖的外部模块)

    第四步: 打开views中的index.ejs文件,删除原有代码,写上自己的html页面

    第五步: 根《请求响应图》 在 routes中的index.js文件中,写请求—响应

    第六步: 打开数据库环境,在黑窗口中安装 npm install mysql --save ||

    第七步: 在routes中的index.js文件中,写上链接数据库的代码@

    第八步: 在黑窗口中输入 npm start || 运行项目

  9. 使用express展示页面:

    1. 把我要展示的html页面放到项目的views中文件夹中
    2. 把.html后缀改成 .ejs
    3. 在index.js中输入写响应时,通过res.render('页面名称‘) 展示页面
  10. 问: 为什么我们的页面要用ejs作为后缀问: 为什么我们的页面要用ejs作为后缀
    答: 因为ejs可以接收后端发送的数据 【ejs模板引擎】
    问: 如何接收数据?
    答: 通过<% = %> 接收数据!!

  11. ★★★ 对于res请求对象!!!就两个方法
    res.render() 展示页面!!!!
    res.send() 发送数据!!!!

    【重要】 如果ajax请求: 就要用res.send() 这样才是把数据放回到 ajax的data中
    【重要】 如果location.href 或 a标签中的href 就要用render() 展示页面

  12. promise
    一个回调套一个回调的形势:回调地狱(callback hell)
    promise 的出现就为了解决回调地狱

  13. koa -----> 是升级版的express,只不过koa引入了使用promise 解决回调地狱的方式

    npm install express-generator -g ===》 express -e aff
    npm install koa-generator -g ==> koa 项目名称

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值