Node.js 事件循环(Event Loop)介绍

 2016年04月13日    672

JavaScript是一种单线程运行但又绝不会阻塞的语言,其实现非阻塞的关键是“事件循环”和“回调机制”。Node.js在JavaScript的基础上实现,同样是单线程运行的语言。在单线程中要解决高并发的问题,就要采用非阻塞、异步编程的方式。简单的说,就是在非常耗时的I/O操作中,采用非阻塞的方式继续执行后续的代码,并且进入事件循环(Event Loop)。当I/O操作完成,程序会通过回调函数的方式通知原操作。

阅读全文

Node.js(npm)中的包和模块

 2016年04月08日    191

Node.js 基于npm包管理系统,建立了强大的模块生态圈。在Node.jsnpm中,对包(package)和模块(module)有非常具体的定义,但我们确经常将它们混淆。本文根据个人经验并参照官方文档,解释和讨论二者的异同。

阅读全文

Node.js 复制文件/文件夹的实现

 2016年03月24日    1614

在Node.js中,操作文件和目录使用fs模块,但在这个模块并没有直接提供文件或目录复制的方法。要实现文件和目录的复制,我们可以借助fs中的一些方法实现。

阅读全文

下一代JavaScript语法编译器Babel

 2016年03月20日    344

当前最新的 JavaScript 语法标准是ECMAScript 6ES2015),ES2015JavaScript带来了很多新特性,如:Promise对象Generator函数Class等。但是这些对象浏览器和低版本的Node.js(Node.js自v4.0+开始支持ES2015特性)中,在并不能或部分不能支持ES2015特性,这时我们可以使用Babel对语言进行转换。

阅读全文

watchify 模块加速 browserify 编译

 2016年03月17日    195

Browserify可以打包Node(npm)模块的依赖环境,让这些模块在浏览器中运行。React在布暑生产环境前,一般也需要使用Browserify打包编译。随着项目的变大,每次打包编译的时间也会变的越来越长,这时我们需要Watchify模块。Watchify会监视源文件的变化,并使用与Browserify相同的配置,自动完成源文件变化部分的打包编译,在打包编译速度上有了极大的提升。

阅读全文

Express.js中文文档-Router对象

 2016年03月15日    594

router路由器对象是一个独立的中间件和路由实例。你可以把它想象成一个“迷你应用程序”,只能够执行中间件和路由功能。每个Express应用都有一个内置的应用路由器。

阅读全文

Express.js中文文档-Response对象

 2016年03月14日    1286

response对象代表HTTP响应信息,响应信息在Express应用收到HTTP请求后发送给客户端。Express的response对象是对Node.jshttp.ServerResponse对象扩展,在ServerResponse对象基础上增加了一些Web应用中常用的属性和方法。按照习惯,在本文档中response对象被表示为res

阅读全文