nodejs入门及其环境搭建

什么是node

  • node.js不是js代码框架
  • node.js是服务端单独运行js文件的一个平台
  • node.js提供了很多js后端开发的代码库

node.js和脚本js代码区别

  • 以前的Js文件是纯前端脚本语言,由浏览器解析运行
  • node帮助我们吧js脚本脱离浏览器单独的拿出来,当作一门语言来进行运行
  • node.js不能执行javascript中的BOM和DOM操作,只能运行ECMAScript

node的背景

  • node.js创始人:Ryan Dahl
  • Ryan Dah1是web高性能研究领域的专家,专门帮客户解决web性能优化问题
  • 尝试过很多语言来实现web服务器优化,其中有ruby、c等,但是效果不佳
  • 他在完全不懂js,决定依靠V8来实现一套服务器,取名叫node
  • 2009年5月开始在github上开源了第一个node版本,并在年底的一场演讲上正式推出node
  • 2010年获得Joyent公司资助,并加入该公司负责node开发,并在2017年在微软支持下登录windows平台

**Node.js服务器优势**

  • 单线程机制
  • java,php等其他语言服务器,都是多线程,每次连接都会启动一个服务器
  • nodejs服务器不为每一个服务器创建一个线程,全部由一个线程处理
  • 通过非阻塞IO和事件驱动机制来实现事件步伐
  • 非阻塞IO:通过回调函数的方式来实现事件步伐
  • 事件驱动: 通过事件环的方式进行循环调度和等待

**node环境搭建(常规安装)**【基数指的是开发板,偶数指的是稳定版】

  • 软件下载网址:http://nodejs.cn/download/ 下载可执行包(window系统就下载.msi文件)
  • 双击运行安装node的msi文件,但是尽量在全英文目录下(如果有中文那么可能会有问题)
  • 配置环境变量(在安装的时候,有个选项可以再安装的时候帮助你直接的配置好)
  • 检测是否安装成功:cmd中输入node -v命令展示安装的版本
    (注意):这种方式是不推荐的 node.js版本升级非常快(几天1小版本、1-3个月1大版本),而且在后期开发中经常会要大家进行不同node.js版本的切换进行测试,此方式在切换版本和升级版本非常不方便

**node环境搭建(nvm配置)**

  • 下载nvm包
  • 解压nvm包:注意一定要解压到全英文路径的文件夹下
  • 配置settings.txt文件中root和path属性(root是nvm的目录,path是快捷方式生成路径)
  • 配置环境变量:NVM——HOME(配置上一步的root路径NVM_SYMLINK(配置上一步的path路径)、PATH(通过%%的方式引用NVM_HOME和NVM_SYMLINK))
  • 测试安装结果:cmd输入nvm ls命令,查看当前nvm管理的node版本

**nvm相关说明**

  • nvm:node version manager(node版本管理工具)
  • nvm中可以配置多个node版本对象,在使用过程中直接通过nvm进行切换即可,不需要重复卸载安装
  • -

**nvm常用命令**

  • nvm ls:查看当前nvm管理的所有node版本
  • node -v:查案当前nvm中正在使用的node 版本
  • nvm use :切换nvm中现在使用的版本号(此时会在之前配置的path路径下出现一个超链接文件夹)
  • nvm install :下载指定版本的node
  • nvm uninstall :卸载指定版本的node

**node的REPL环境了解**

  • 全称:R(read)、E(evaluate)、P(print)、L(loop)
  • 最常用的REPL环境:浏览器审查元素console控制台
  • cmd中输入node回车即可进入repl环境,进行编程

**REPL环境的作用**

  • 每一次环境的启动,就是js编程的全局作用域
  • 可以再这个环境中进行部分代码调试和运行

Node执行js文件

  • 执行cmd命令提示窗体
  • cd跳转到Js文件所在的目录
  • 执行命令进行js文件执行:Node文件名.js(执行的时候后缀是可以省略的)
  • webStrome配置Node环境(• file->setting->langurage and frameworke ->node.js->配置node路径)

node.js中web服务器初步搭建

  • require方式引入包
  • 创建服务器,并启动一个回调函数(表示有客户端连接后需要干的事情)
  • 让服务器监听一个端口,,并启动一个回调函数(表示服务器启动后需要干的事情)

开发工具介绍

  • sublime:不建议使用,属于轻量级开发工具,对于nodejs服务器开发不擅长
  • webstrom:企业级开发工具
  • Visual Studio Code:企业级开发工具,专业node开发调试工具(功能强大)

global对象

  • 类似于客户端js编程BOM中window对像
  • 由于node.js不在浏览器上运行,所以不存在window对象,改为global全局对象

process对象

  • 进程对象,可以获取当前进程的相关信息
  • argv参数属性,获取当前运行文档相关的参数信息
  • stdin监控控制台的输入
  • stdout像控制台输出
  • exit退出repl环境

模板字符串

  • 优点:可以直接把代码中所有格式直接按原版输出
    里面可以直接放置变量,放置变量格式:${变量}

let和const

  • let和const是ECMAScript标准发布的新变革
  • let是用于声明变量,比var声明更完美
  • let属于严格模式的声明,在低版本的node平台,必须要在文件前面声明“use strict”,高版本已经兼容
  • let定义的属性不能重复声明,var定义的可以重复声明
  • 块级作用域更加严格
  • const定义的值只能在定义时候赋值,使用时候不能再改(常量)

你可能感兴趣的:(前端)