node初识

原创 2016-11-07 14:05:29 550
摘要:什么是nodeNode是基于Chrome V8 解析引擎之上构建的一个JavaScript运行时环境,或者说平台在node中,可以使用JavaScript语言进行编译把Node是一个平台,让JavaScript可以脱离浏览器环境运行Node自身使用C++ 语言写出了很多系统级别相关的API,暴露了一些JavaScript环境APInpm:包管理工具npm是一个用来托管基于node开发包的是一个命令

什么是node

Node是基于Chrome V8 解析引擎之上构建的一个JavaScript运行时环境,或者说平台在node中,可以使用JavaScript语言进行编译把

Node是一个平台,让JavaScript可以脱离浏览器环境运行

Node自身使用C++ 语言写出了很多系统级别相关的API,暴露了一些JavaScript环境API

npm:包管理工具npm

  • 是一个用来托管基于node开发包的

  • 是一个命令行工具,可以用来下载npm网络上托管的Node包

  • 有了npm,直接拿来解决问题,更加专注于业务处理

Node的特点:

event——driven:事件驱动

  • non-blocking I/O model :非阻塞IO模型

  • 文件IO、网络IO基本山都是异步的

  • 在Node中有各种花式回调

  • Node采用的是事件驱动和非阻塞IO模型使它本身非常的轻量级和高效

Node总结

Node是基于Chrome V8引擎,一个JavaScript运行环境

验证node版本 node -v

操作方法

创建http服务器得到一个服务器实例对象

var http = reauire('http')
var server = http.createServer()

给Server对象添加request事件处理函数:回调函数有两个参数

1 Request:用来获取当前客户端的请求信息,可以获取客户端请求中的url请求地址、查询字符串、post请求提交

2 Response:也是一个对象,一般用来给本次请求发送响应数据

通过Server对象的listen函数,设置一个监听的端口号,启动服务器

服务器开启监听成功后,会触发该回调函数

path环境变量

配置用户环境变量 快速启动

Node中的JavaScript

  • REPL运行环境

  • R: read

  • E: Eval

  • P: Print

  • L: loop

  • ECMAscript

  • Node对最新的ECMAscript语言标准支持的非常好

  • Node除了官方的ECMAscript语言规范,同时将console对象、定时器等函数也移植到NOde中

  • 全局对象

  • global:相对于浏览器中的全局对象window,全局作用域和模块作用域的概念

  • Console

  • process:进程对象,对应着的是浏览器中的window对象

  • Buffer

Node中的模块系统

  • Node天生就已经实现了一个模块系统解决方案

  • 每个文件对外接口是module.exports

  • 向当前运行终端输出一些内容
    process.stdout.write

  • 接收终端输入的内容

  • 当程度启动,当前应用程序就保持挂起 等待用户输入内容
    process.stdin.on('data', function (data) { })

模块系统

模块系统解决方案

Node基于CommonJS规范实现了自己的一套模块系统规范

文件模块 

用户编写的模块

第三方模块

一般就是通过npm install安装的模块就是第三方模块

npm 本地安装 全局安装

  • npm install 包名 --global|-g 全局安装

        nodemon

        可以实现文件代码改变

  • htp-server

        可以实现快速启动服务器

  • 使用npm root -g 可以查看全局命令行工具的安装

  • brower-sync

        前端可视化开发

git bash here

  • touch 新建一个文件

  • cat 查看文件

  • vi (文件名)

  • 按less (文件名)按q退出

  • yy 在编辑模式中是复制 p是粘贴

文件操作

path

使用是进入node环境,然后开始使用

同步、异步调用

  • 同步调用代码会阻塞后续代码的继续执行,没有异步API执行效率高,但是写起来爽

  • 同步操作API需要使用try catch捕获异常

  • readFileSync('./REEADEME.md', 'utf8')

  • 异步API一般都是通过回调函数的形式来获取执行结果

  • 异步API无法通过try catch来捕获异常,一般在爱回调函数中,node会给你提供了一个err对象,你可以通过判断回调函数的第一个参数err来看看是否有异常发生

  • 能使用异步API的情况下,少使用同步的

  • highlight.js markdown高亮

promise

then里边有三种结果

  • then可以多次链式调用

  • 每一个then 中的回调函数的结果取决于上一then的返回值

  • then里边不返回任何东西,默认就是undefined

  • then里面显示的调用了return下一个then得到的就是上一个then的return结果

  • 在一个then里面返回一个新的Promise对象


发布手记

热门词条