node总结记录
本来不打算在博客上记录的,但是嘞,最近偏偏就研究了,所以把自己的这些东西都写到这里了,希望共同学习记录下。。。
luyaran
像永远快乐的阳光,追求那至高无上的完美乐园。
展开
-
node总结之安装环境运行第一个脚本
首先要了解,Node.js 就是运行在服务端的 JavaScript,它是一个基于Chrome JavaScript 运行时建立的一个平台,还是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。说到这里,我插一嘴啊,之前看过我博客的看官应该知道,咱是一个地道的PHP,所以在这里得提一下这个V8引擎。在PH...原创 2018-10-24 14:40:58 · 514 阅读 · 0 评论 -
node总结之创建一个简单的应用(http)
如果我们使用PHP来编写后端的代码时,需要Apache 或者 Nginx 的HTTP 服务器,并配上 mod_php5 模块和php-cgi,才可以进行浏览器访问,单从这个角度看,整个"接收 HTTP 请求并提供 Web 页面"的需求根本不需 要 PHP 来处理,不过对 Node.js 来说,概念完全不一样了。我们在使用 Node.js 时,我们不仅仅在实现一个应用,同时还实现了整个 HTTP...原创 2018-10-24 15:59:01 · 290 阅读 · 0 评论 -
node总结之包管理工具NPM的使用介绍
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:允许用户从NPM服务器下载别人编写的第三方包到本地使用。 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 "...原创 2018-10-24 16:19:03 · 788 阅读 · 0 评论 -
node总结之REPL(交互式解释器)了解下
Node.js的REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境,类似 Window 系统的终端或 Unix/Linux shell,我们可以在终端中输入命令,并接收系统的响应。Node本身自带了交互式解释器,可以执行以下任务: 读取 - 读取用户输入,解析输入了Javascript 数据结构并存储在内存中。 执行 - 执行输入的数据结构 ...原创 2018-10-24 16:37:52 · 290 阅读 · 0 评论 -
node总结之回调函数了解下
Node.js的异步编程的直接体现就是回调,其中,异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了。回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都支持回调函数。例如,我们可以一边读取文件,一边执行其他命令,在文件读取完成后,我们将文件内容作为回调函数的参数返回。这样在执行代码时就没有阻塞或等待文件 I/O 操作,这就大大提高了 Node.js...原创 2018-10-24 16:47:14 · 320 阅读 · 0 评论 -
node总结之事件循环了解下
Node.js 是单进程单线程应用程序,但是因为 V8 引擎提供的异步执行回调接口,通过这些接口可以处理大量的并发,所以性能非常高。它几乎每一个 API 都是支持回调函数的,基本上所有的事件机制都是用设计模式中观察者模式实现,它的单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数。Node.js 使用事件...原创 2018-10-24 16:59:15 · 167 阅读 · 0 评论 -
node总结之EventEmitter这个鬼了解下
Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列,它里面的许多对象都会分发事件:一个 net.Server 对象会在每次有新连接时触发一个事件, 一个 fs.readStream 对象会在文件被打开的时候触发一个事件。 所有这些产生事件的对象都是 events.EventEmitter 的实例。其中这个EventEmitter类呢,是node中事件的基础, 实现了事件...原创 2018-10-25 13:34:04 · 2005 阅读 · 1 评论 -
node总结之Buffer(缓冲区)了解下(一)
JavaScript 语言自身只有字符串数据类型,没有二进制数据类型,但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库,Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处理二...原创 2018-10-25 14:05:46 · 288 阅读 · 0 评论 -
node总结之Buffer(缓冲区)了解下(二)
接着上篇文章来啊,咱们来看Node 缓冲区裁剪语法:buf.slice([start[, end]])参数描述如下: start - 数字, 可选, 默认: 0 end - 数字, 可选, 默认: buffer.length 它会返回一个新的缓冲区,它和旧缓冲区指向同一块内存,但是从索引 start 到 end 的位置剪切,来看实例:var buffer1 = ...原创 2018-10-25 14:29:44 · 902 阅读 · 0 评论 -
node总结之Stream(流)了解下
简单来说 Stream 是一个抽象接口,Node 中有很多对象实现了这个接口。例如,对http 服务器发起请求的request 对象就是一个 Stream,还有stdout(标准输出)。在Node中有四种流类型: Readable - 可读操作。 Writable - 可写操作。 Duplex - 可读可写操作. Transform - 操作被写入数据,然后读出...原创 2018-10-25 15:05:46 · 993 阅读 · 0 评论 -
node总结之模块系统了解下
为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统,它是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。在 Node.js 中,创建一个模块非常简单,如下:var hello = require('./hello')...原创 2018-10-25 15:16:17 · 185 阅读 · 0 评论 -
node总结之函数操作了解下
在JavaScript中,一个函数可以作为另一个函数的参数。我们可以先定义一个函数,然后传递,也可以在传递参数的地方直接定义函数。那么,在Node.js中函数的使用与Javascript类似,来看个实例感受下:function say(word) { console.log(word);}function execute(someFunction, value) { someF...原创 2018-10-25 15:34:31 · 160 阅读 · 0 评论 -
node总结之路由是什么鬼
如果我们要为路由提供请求的 URL 和其他需要的 GET 及 POST 参数,随后路由需要根据这些数据来执行相应的代码,所以,我们需要查看 HTTP 请求,从中提取出请求的 URL 以及 GET/POST 参数。这一功能应当属于路由还是服务器(甚至作为一个模块自身的功能)确实值得探讨,但这里暂定其为我们的HTTP服务器的功能。我们需要的所有数据都会包含在 request 对象中,该对象作为 o...原创 2018-10-25 15:42:18 · 2010 阅读 · 6 评论 -
node总结之全局对象了解下(一)
JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可以在程序的任何地方访问,这就是全局变量,在浏览器 JavaScript 中,通常 window 是全局对象, 然而 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global 对象的属性,所以,在 Node.js 我们可以直接访问到 global...原创 2018-10-26 14:38:28 · 314 阅读 · 0 评论 -
node总结之全局对象了解下(二)
咱们接着上篇文章来看,process这个全局变量,它是global对象的一个属性,用于描述当前Node.js 进程状态的对象,提供了一个与操作系统的简单接口。通常在我们写本地命令行程序的时候,少不了要 和它打交道。咱们来看下 process 对象的一些最常用的成员方法:序号 事件 & 描述 1 exit 当进程准备退出时触发。 2 beforeExit...原创 2018-10-26 14:45:12 · 150 阅读 · 0 评论 -
node总结之核心模块(until)
util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足,咱们这次就来简单的看一些关于until的一些函数。util.inherits(constructor, superConstructor)是一个实现对象间原型继承 的函数。JavaScript 的面向对象特性是基于原型的,与常见的基于类的不同,JavaScript 没有 提供...原创 2018-10-26 14:59:25 · 1036 阅读 · 0 评论 -
node总结之文件操作系列(一)
Node.js 提供一组类似 UNIX(POSIX)标准的文件操作API,我们来看下Node 导入文件系统模块(fs)语法,如下:var fs = require("fs")Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync()。其中,异步的方法函数最后一个参数为回调函...原创 2018-10-26 15:34:50 · 226 阅读 · 0 评论 -
node总结之文件操作系列(二)
接着上一篇博客来啊,咱们继续看异步模式下关闭文件的语法格式:fs.close(fd, callback)参数描述如下: fd - 通过 fs.open() 方法返回的文件描述符。 callback - 回调函数,没有参数。 实例如下:var fs = require("fs");var buf = new Buffer.alloc(1024);consol...原创 2018-10-26 15:43:07 · 193 阅读 · 0 评论 -
node总结之GET/POST请求的发送和接收了解下
在我们的现实场景中,我们的node服务器都需要跟用户的浏览器打交道,也就是说建立一个交互的关系。那么,这个关系之间的通信基本上比较熟悉的就是get/post这种方式了。咱们这刺激来简单看下在node中,是如何接收和处理这些关系的。由于GET请求直接被嵌入在路径中,URL是完整的请求路径,包括了?后面的部分,因此我们可以使用node中 url 模块中的 parse 函数手动解析后面的内容作为GE...原创 2018-10-29 09:43:32 · 494 阅读 · 0 评论 -
node总结之工具模块(OS 模块)
Node.js os 模块提供了一些基本的系统操作函数,来看下引入该模块的语法格式:var os = require("os")来看下其中包含的方法:序号 方法 & 描述 1 os.tmpdir() 返回操作系统的默认临时文件夹。 2 os.endianness() 返回 CPU 的字节序,可能的是 "BE" 或 "LE"。 3 ...原创 2018-10-29 10:31:59 · 619 阅读 · 0 评论 -
node总结之工具模块(Path 模块)
Node.js path 模块提供了一些用于处理文件路径的小工具,来看下引入该模块的语法格式:var path = require("path")来看下方法:序号 方法 & 描述 1 path.normalize(p) 规范化路径,注意'..' 和 '.'。 2 path.join([path1][, path2][, ...]) 用于连...原创 2018-10-29 10:40:03 · 207 阅读 · 0 评论 -
node总结之工具模块(Net 模块)
Node.js Net 模块提供了一些用于底层的网络通信的小工具,包含了创建服务器/客户端的方法,来看下引入该模块的语法格式:var net = require("net")来看下net模块中的方法:序号 方法 & 描述 1 net.createServer([options][, connectionListener]) 创建一个 TCP 服务器。参数...原创 2018-10-29 10:57:44 · 1111 阅读 · 1 评论 -
node总结之工具模块(DNS 模块)
Node.js DNS 模块用于解析域名,来看下引入 DNS 模块的语法格式:var dns = require("dns")来看下dns模块中包含的方法:序号 方法 & 描述 1 dns.lookup(hostname[, options], callback) 将域名(比如 'runoob.com')解析为第一条找到的记录 A (IPV4)或 AAA...原创 2018-10-29 11:25:41 · 265 阅读 · 0 评论 -
node总结之工具模块(Domain 模块)
Node.js Domain(域) 简化异步代码的异常处理,可以捕捉处理try catch无法捕捉的异常,来看下引入 Domain 模块的语法格式:var domain = require("domain")domain模块,把处理多个不同的IO的操作作为一个组。注册事件和回调到domain,当发生一个错误事件或抛出一个错误时,domain对象会被通知,不会丢失上下文环境,也不导致程序错...原创 2018-10-29 11:29:13 · 344 阅读 · 0 评论 -
node总结之Web 模块了解下
Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL,与客户端的网络浏览器配合。并且大多数 web 服务器都支持服务端的脚本语言(php、python、ruby)等,并通过脚本语言从数据库获取数据,将结果返回给客户端浏览器。目前最主流的三个Web服务器是Apache、Nginx、II...原创 2018-10-29 14:06:51 · 189 阅读 · 0 评论 -
node总结之创建并使用RESTful API了解下
REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格,而这个表述性状态转移是一组架构约束条件和原则。我们把满足这些约束条件和原则的应用程序或设计叫做RESTful。需要注意的是,REST是设计风格而不是标准,REST通常基于使用HTTP,URI,和XML(标...原创 2018-10-29 14:40:31 · 353 阅读 · 0 评论 -
node总结之多进程了解下
Node.js 是以单线程的模式运行的,但它使用的是事件驱动来处理并发,这样有助于我们在多核 cpu 的系统上创建多个子进程,从而提高性能,其中,每个子进程总是带有三个流对象:child.stdin, child.stdout 和child.stderr。他们可能会共享父进程的 stdio 流,或者也可以是独立的被导流的流对象。Node 提供了 child_process 模块来创建子进程,来...原创 2018-10-29 15:33:41 · 552 阅读 · 0 评论 -
RESTful网上的资料总结下
RESTful(Representational State Transfer),在百度上的定义是这样的:一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。咱们先来看这个REST是什么鬼?REST(英文:Representational State Transfe...原创 2018-10-29 17:18:34 · 198 阅读 · 0 评论 -
node总结之包管理器npm和cnpm了解下
npm(node package manager)是nodejs的包管理器,用于node插件管理(包括安装、卸载、管理依赖等), NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,它是 Node 获得成功的重要原因之一。但是我们平常安装包的时候,还会发现有个cnpm这个命令。先说明哈,cnpm跟npm用法完全一致,只是在执行命令时将npm改为cnpm,它...原创 2018-10-30 10:50:14 · 293 阅读 · 0 评论 -
node总结之MySQL增删改查操作了解下
废话不多说啊,先来看node中安装MySQL包的命令:cnpm install mysql完事看个简单的查询实例,先来感受下:var mysql = require('mysql');var connection = mysql.createConnection({ host : 'localhost', user : 'root', pas...原创 2018-10-30 11:10:42 · 340 阅读 · 0 评论 -
node总结之MongoDB增删改查操作了解下
废话不多说,先来看安装包的命令:cnpm install mongodb完事我们需要在 MongoDB 中创建一个数据库,首先我们需要创建一个 MongoClient 对象,然后配置好指定的 URL 和 端口号,如果数据库不存在,MongoDB 将创建数据库并建立连接,来看代码:var MongoClient = require('mongodb').MongoClient;va...原创 2018-10-30 11:29:51 · 361 阅读 · 0 评论