node.js学习-第一章节

目录

前言

学习NodeJS的意义

01-nodejs入门

1.2-什么是nodejs

1.3-Node.js环境安装

1.3.1-如何确认当前电脑是否已经安装了Node环境

1.3.2-npm介绍与cnpm安装

1.3-如何运行Node.js程序

1.4-服务端js与客户端js区别

02-ES6语法新特性介绍

1.1-变量声明let与const

1.2-解构赋值语法

1.2.1-对象的解构赋值

1.2.2-数组解构赋值

1.2.3-函数参数解构赋值

1.3-箭头函数

1.4-模板字符串

1.5-拓展运算符

1.6-数据类型Set

1.7-babel网站:ES6转ES5

01-nodejs核心模块

1.1-fs文件模块(读写文件)

1.1.1-readFile读取文件

1.1.2-writeFile写入文件

1.2-同步与异步区别

1.3-path路径模块

1.3.1-nodejs中的相对路径介绍

1.3.2-path路径模块拼接路径

1.4-http模块(搭建服务器)

1.4.1-http模块搭建服务器

1.4.2-响应客户端请求

1.4.3-根据不同请求响应不同数据

1.4.4-http响应客户端HTML文件

1.4.5-设置响应头

02-[拓展]nodejs实现服务端重定向

03-[了解]nodejs断点调试

04-cmder

4.1- 为什么要使用cmder

4.2- cmder的一些命令

05-[补充]Nodemon全局模块

总结


前言

学习NodeJS的意义

  • 1.了解客户端浏览器与服务端后台的交互过程,可以在以后的前端开发工作中与后台人员之间的沟通更加容易理解

    • 虽然以后工作中不一定用的上nodejs,但是通过对服务端开发的了解,能够让你在日常工作中与公司后台人员之间的沟通变得更加轻松

  • 2.了解服务端开发的一些特性,可以在以后的工作中,当我们前端与后台交互出现bug问题时,能够更快速的定位bug是出现在自己的客户端还是别人的服务端。

    • 作为一名前端人员,如果对后台不了解,那么以后在与后台交互的开发中有可能明明是后台的问题,但是由于自身对后台的不了解再加上前期的经验不足,导致解决问题的时间增加(加班)。

  • 3.了解服务端开发的过程,可以为以后的职业发展打下一定的基础(全栈工程师)


01-nodejs入门

1.2-什么是nodejs

  • 1.Node.js官网地址:Node.js

  • 中文:API 文档 | Node.js 中文网

  • 1.Node 是一个构建于 Chrome V8引擎之上的一个Javascript 运行环境

    • Node一个运行环境,作用是让js拥有开发服务端的功能

  • 2.Node使用事件驱动、非阻塞IO模型(异步读写)使得它非常的轻量级和高效

    • Node中绝大多数API都是异步(类似于ajax),目的是提高性能

  • 3.Node中的NPM是世界上最大的开源库生态系统(类似于github)

    • NMP官网:npm

1.3-Node.js环境安装

1.3.1-如何确认当前电脑是否已经安装了Node环境

  • 打开终端,输入 node -v,

  • 如果能看到版本号则说明当前电脑已经安装Node环境,

  • 如果提示Node不是内部或外部命令,则表示未安装

    • 一旦安装了node,则会自动一并安装npm

1.3.2-npm介绍与cnpm安装

  • 1.npm

    • 全称node package manager

    • 官方推出的包管理工具

    • 不需要额外安装,安装node之后自带

    • 因为服务器不在国内,所以有时候安装特别慢,甚至无法成功

  • 2.npm指向淘宝镜像

  • 3.cnpm

    • 全称china node package manager

    • 非官方推出的包管理工具

    • 需要额外安装:npm install -g cnpm --registry=https://registry.npm.taobao.org

    • 国内安装特别快,不需要翻墙(如果特殊情况无法安装,也可使用npm)

    • 安装成功之后,通过cnpm -v查看

1.3-如何运行Node.js程序

  • 1.REPL:交互解释器

    • Node运行环境的另一种叫法,作用是解析执行js代码

    • 用法

      • 第一种方式:直接双击打开 node.exe,然后写js代码

      • 第二种方式:

        • 先在终端先执行node,进入node环境

        • 然后写js代码

  • 2.使用终端命令node [js文件路径]开始运行js文件

    • (1)其实当我们在终端执行Node命令时,并不是我们终端去编译解释js代码,而是电脑会自动打开Node安装包中Node.exe应用程序来打开js文件

      • Node.exe是一个类似于终端的应用程序,没有界面(CLI程序:command-line interface,命令行界面)

      • Node.exe工作环境称之为REPL环境,也就是交互式解释器

    • (2)REPL才是真正解释执行我们js代码的解释器

    •  

    3.nodemon

    • node开发之友,当你的js文件发生变化的时候,nodemon会自动帮你启动node程序

  • 安装: npm install -g nodemon

    • 使用:nodemon [js文件名]

1.4-服务端js与客户端js区别

  • 1.客户端JS由三部分组成

    • ECMAScript:确定js的语法规范

    • DOM:js操作网页内容

    • BOM:js操作浏览器窗口

  • 2.服务端JS只有ECMAScript

    • 因为服务端是没有界面的

      • 在nodejs中使用dom与bom的api程序会报错

02-ES6语法新特性介绍

1.1-变量声明let与const

/* 
    1.学习目标 : 掌握ES6新增两个关键字 let 与 const
      * let 与 const的作用是声明变量,类似于ES5的var关键字
    2.学习路线(对比法学习)
      (1) 复习ES5的var关键字两个特点
      (2) 介绍ES6的let与const关键字的两个特点
      (3) 介绍let与const的区别 与 注意点
*/
​
/* 1.ES5语法变量特点 */
​
// 1.1 变量会提升
console.log(num);//undefined
var num = 10;
​
// 1.2 没有块级作用域
for (var i = 1; i < 5; i++) {
  console.log('循环内' + i);
};
​
console.log('循环外' + i);//5
​
/* 2.ES6新增两种变量声明方式(let与const),类似于var
     (1).不会提升
     (2).有块级作用域
*/
​
// (1)如果打印undefined,说明提升了  (2)如果报错,说明没有提升
// console.log(a);//报错
// let a = 10;
​
// (2)如果打印5,说明没有块级作用域  (2)如果报错,说明有块级作用域
  
for(let j = 1;j<5;j++){
  console.log(j);
};
​
// console.log(j);
​
/* 3.let与const区别
  * 注意点:ES6中变量不能重复声明,否则会报错
*/
​
//let声明:变量,允许修改
let a = 10;
a = 20;
// let a = 30;//程序报错,不允许重复声明
console.log(a);
​
//const声明:常量,只可以声明的时候赋值一次,之后无法修改
const b = 100;
// b = 200;//程序报错
console.log(b);

1.2-解构赋值语法

  • 解构赋值语法 : 其实就是变量赋值语法的简写形式

1.2.1-对象的解构赋值

/* 
    1.学习目标:掌握对象的解构赋值语法
        * 解构赋值本质 就是 变量赋值语法的简写形式
    2.学习路径 : 对比法学习(ES5与ES6对比)
        (1)取出 对象的属性值 赋值给 变量
        (2)取出 变量的值 赋值给 对象的属性
        (3)设置 解构赋值语法 的默认值
​
*/
​
//解构赋值语法 : 其实就是变量赋值语法的简写形式
​
//1:取出 对象的属性 赋值 给变量
​
let obj = {
    name:'张三',
    age:18,
    sex:'男'
};
​
/* ES5 */
// let name = obj.name;
// let age = obj.age;
// let sex = obj.sex;
// console.log(name,age,sex);
​
/* ES6 */
​
/* a.这行代码本质:声明三个变量 name,age,sex。取出右边obj对象对应的属性名赋值给左边的变量*/
// let {name,age,sex} = obj;
// console.log(name,age,sex);
​
/* b.由于obj对象没有score属性,所以变量score的值为undefined。 */
// let {name,score} = obj;
// console.log(name,score);
​
/* c. sex:gender 的含义 : let gender = obj.sex */
// let {name,sex:gender} = obj;
// console.log(name,gender);
​
//2:取出变量的值 赋值给对象的属性
​
// let name = '李四';
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值