Node.js 安装后,会同时提供一个命令行(CLI)工具。通过这个命令行工具,可以运行Node程序。通过它提供的一些命令参数选项,这些参数向内置的调试器,提供了多种脚本执行方式及其它有用的运行选项。
语法格式
使用示例
选项参数
-v, --version
-h, --help
-e, --eval "scri...
阅读全文 →
JavaScript是一种单线程运行但又绝不会阻塞的语言,其实现非阻塞的关键是“事件循环”和“回调机制”。Node.js在JavaScript的基础上实现,同样是单线程运行的语言。在单线程中要解决高并发的问题,就要采用非阻塞、异步编程的方式。简单的说,就是在非常耗时的I/O操作中,采用非阻塞的方式继续执行后续的代码,并且进入事件循环(Event Loop)...
阅读全文 →
Node.js应用中可能会发生多种类型的错误。如:当出现语法错误或运行时错误时,会触发JavaScript错误;当试图试访问一个不存在或没有访问的文件时,会触发系统错误;除JavaScript错误和系统错误错误外,用户还可以自定义错误。理解Node.js中错误类型,可以帮我们更好的进行错误处理和异常捕获。
错误分类
JavaScript错误与系统错误...
阅读全文 →
HTTP实现文件下载时,只要在服务器设置好相关响应头,并使用二进制传输文件数据即可,而客户端(浏览器)会根据响应头接收文件数据。而在Node.js中,设置好响应头后,读取文件流,再使用.pipe()方法将流转接到响应对象Response就可以实现一个简单的文件下载服务器。
文件下载介绍
Node.js文件下载服务器实现
2.1 添加路由
...
阅读全文 →
Node.js实现了一个简单的模块加载系统。在Node.js中,文件和模块是一一对应的关系,可以理解为一个文件就是一个模块。其模块系统的实现主要依赖于全局对象module,其中实现了exports(导出)、require()(加载)等机制。
模块加载
访问主模块
附:包管理技巧
总体来说…
模块缓存
核心模块
循环依赖
文件模块
文件夹...
阅读全文 →
在HTTP协议中,multipart/form-data格式用于向服务器发送二进制数据,通过这一内容类型(Content-Type)可以实现文件、图片的上传。由于这种格式发送的是二进制数据,在服务器端接收和处理数据时会与其它内容类型有所有区别。
HTTP协议中的文件上传
1.1 POST上传文件
1.2 HTTP数据提交与服务器数据解析
...
阅读全文 →
Node.js创建的HTTP服务器,其对于每个客户端请求的默认连接时长是2分钟(120秒)。如果在这个时间内,服务器没有发送响应信息(response),客户端的连接就会被重置。时间过长的请求响应会造成极差的用户体验,而且会造成IO的阻塞,对于单线程运行的Node.js应用来说,这种影响简直是灾难性的。合理的设置应用的超时时间非常重要。
Node....
阅读全文 →
在ECMAScript 2015(ES6)推出TypeArray标准之前,JavaScript语言处理二进制数据非常困难,这在后端开发中使用很不方便。Node.js中的Buffer类就是为了解决二进制数据处理的问题,该类为Node.js带来了如TCP流操作和文件系统流操作的能力。ECMAScript 2015中TypeArray做为语言标准被引入,使Jav...
阅读全文 →
Node.js插件(Addons)是C/C++编写的动态链接对象,这些对象可以被Node.js的require()函数引用,并可以像普通的Node.js模块一样使用。Addons主要用于提供一个Node.js中运行的JavaScript和C/C++库之间的接口。
Addons
1.1 概述
1.2 Node.js依赖链接
...
阅读全文 →
MySQL支持自定义函数和存储过程,创建函数和存储过程分别使用CREATE PROCEDURE和CREATE FUNCTION,两者在语法结构上比较相似,但是它们的使用方法及使用场景有所有不同。
存储过程
1.1 语法结构
1.2 存储过程的使用
函数
2.1 语法结构
2.2 自定义函数的使用
2....
阅读全文 →