Node.js笔记--02

版权声明:这是博主的原创文章,喜欢请支持一下。 https://blog.csdn.net/qq_39925376/article/details/88624643

Node.js Stream 是一个抽象接口。
有四种流类型:
Readable - 可读操作。
Writable - 可写操作。
Duplex - 可读可写操作.
Transform - 操作被写入数据,然后读出结果。

为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。
模块是Node.js 应用程序的基本组成部分,文件和模块一一对应。一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。
Node.js 中自带了一个叫做 http 的模块,在代码中请求它并把返回值赋给一个本地变量,把我们的本地变量变成了一个拥有所有 http 模块所提供的公共方法的对象。

所有数据都会包含在 request 对象中,该对象作为 onRequest() 回调函数的第一个参数传递。但为了解析这些数据,还需要额外的 Node.JS 模块,它们分别是 url 和 querystring 模块。
setInterval(cb, ms) 全局函数在指定的毫秒(ms)数后执行指定函数(cb)。
process 是一个全局变量,用于描述当前Node.js 进程状态的对象,提供了一个与操作系统的简单接口。

util 是一个Node.js 核心模块,提供常用函数的集合。
util.inspect(object,[showHidden],[depth],[colors])是一个将任意对象转换 为字符串的方法,通常用于调试和错误输出。

Node.js 提供一组类似 UNIX(POSIX)标准的文件操作API。

	fs.open(path, flags[, mode], callback)

path - 文件的路径。
flags - 文件打开的行为。具体值详见下文。
mode - 设置文件模式(权限),文件创建默认权限为 0666(可读,可写)。
callback - 回调函数,带有两个参数如:callback(err, fd)。

OS 模块 ----提供基本的系统操作函数。
Path 模块 ----提供了处理和转换文件路径的工具。
Net 模块 ----用于底层的网络通信。提供了服务端和客户端的的操作。
DNS 模块 ----用于解析域名。
Domain 模块 ----简化异步代码的异常处理,可以捕捉处理try catch无法捕捉的。

Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,功能是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL,与客户端的网络浏览器配合。
大多数 web 服务器都支持服务端的脚本语言(php、python、ruby)等,并通过脚本语言从数据库获取数据,将结果返回给客户端浏览器。
目前最主流的三个Web服务器是Apache、Nginx、IIS。

Web 应用架构:
Client ----客户端,一般指浏览器,浏览器可以通过 HTTP 协议向服务器请求数据。
Server ----服务端,一般指 Web 服务器,可以接收客户端请求,并向客户端发送响应数据。
Business ----业务层, 通过 Web 服务器处理应用程序,如与数据库交互,逻辑运算,调用外部程序等。
Data ----数据层,一般由数据库组成。

Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。
使用 Express 可以快速地搭建一个完整功能的网站。
Express 框架核心特性:
可以设置中间件来响应 HTTP 请求。
定义了路由表用于执行不同的 HTTP 请求动作。
可以通过向模板传递参数来动态渲染 HTML 页面。

	cnpm install express --save

将 Express 框架安装在当前目录的 node_modules 目录中, node_modules 目录下会自动创建 express 目录。
body-parser - node.js 中间件 ----处理 JSON, Raw, Text 和 URL 编码的数据。
cookie-parser ----解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。
multer - node.js 中间件 ----处理 enctype=“multipart/form-data”(设置表单的MIME编码)的表单数据。
Express 应用使用回调函数的参数:
request 和 response 对象来处理请求和响应的数据。
Request 对象 - request 对象表示 HTTP 请求,包含了请求查询字符串,参数,内容,HTTP 头部等属性。
Response 对象 - response 对象表示 HTTP 响应,即在接收到请求时向客户端发送的 HTTP 响应数据。
路由决定了由谁(指定脚本)去响应客户端请求,表单提交到服务器一般都使用 GET/POST 请求。Express 提供了内置的中间件 express.static 来设置静态文件如:图片, CSS, JavaScript 等。

REST即表述性状态传递,是一组架构约束条件和原则。REST是设计风格而不是标准。REST通常基于使用HTTP,URI,和XML(标准通用标记语言下的一个子集)以及HTML(标准通用标记语言下的一个应用)这些现有的广泛流行的协议和标准。REST 通常使用 JSON 数据格式。

HTTP 方法(REST 基本架构的四个方法:)
GET - 用于获取数据。
PUT - 用于更新或添加数据。
DELETE - 用于删除数据。
POST - 用于添加数据。

Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
基于 REST 架构的 Web Services 即是 RESTful。
由于轻量级以及通过 HTTP 直接传输数据的特性,Web 服务的 RESTful 方法已经成为最常见的替代方法。可以使用各种语言(比如 Java 程序、Perl、Ruby、Python、PHP 和 Javascript[包括 Ajax])实现客户端。
RESTful Web 服务通常可以通过自动客户端或代表用户的应用程序访问。但是,这种服务的简便性让用户能够与之直接交互,使用它们的 Web 浏览器构建一个 GET URL 并读取返回的内容。

Node.js 是以单线程的模式运行的,但它使用的是事件驱动来处理并发,这样有助于我们在多核 cpu 的系统上创建多个子进程,从而提高性能。每个子进程总是带有三个流对象:child.stdin, child.stdout 和child.stderr。他们可能会共享父进程的 stdio 流,或者也可以是独立的被导流的流对象。
Node 提供了 child_process 模块来创建子进程,方法有:
exec - child_process.exec 使用子进程执行命令,缓存子进程的输出,并将子进程的输出以回调函数参数的形式返回。
spawn - child_process.spawn 使用指定的命令行参数创建新进程。
fork - child_process.fork 是 spawn()的特殊形式,用于在子进程中运行的模块,如 fork(’./son.js’) 相当于 spawn(‘node’, [’./son.js’]) 。与spawn方法不同的是,fork会在父进程与子进程之间,建立一个通信管道,用于进程之间的通信。

child_process.exec 使用子进程执行命令,缓存子进程的输出,并将子进程的输出以回调函数参数的形式返回。exec() 方法返回最大的缓冲区,并等待进程结束,一次性返回缓冲区的内容。
child_process.spawn 使用指定的命令行参数创建新进程。

猜你喜欢

转载自blog.csdn.net/qq_39925376/article/details/88624643