阿宝的NodeJS私房菜(一)

谨以此文献给阿宝,迈向成为全栈开发工程师的第一步!

Node概述

NodeJS是一个高效的非阻塞式服务器,也是一个后端编程框架,使得前端开发者只需要编写JavaScript代码即可完成后端的开发,极大地提高了开发效率。所谓非阻塞,NodeJS采用完全异步的方式来并发地处理来自客户端的请求,因为采用的是注册回调函数的方式,因此程序执行的时候是异步的,例如以下代码:

/*main.js, create by Abei*/
var fs = require("fs");
fs.readFile('input.txt', function (err, data) {
    if (err) return console.error(err);
    console.log(data.toString());
});
console.log("程序执行结束!");

其执行结果是:

$ node main.js
程序执行结束!
input.txt文件中的内容

可以发现,代码先执行了后面的内容,因此这是一个异步读取文件 的过程,省去了等待IO操作的时间。而且NodeJS整个服务器是一个While循环,当有请求发生时,都会把请求扔进并行的线程池中处理,当轮询时发现有请求完成时,就执行回调函数,因此是非阻塞的,极大提高了服务器的效率。

NodeJS的安装

Mac下安装NodeJS

在Mac上安装node.js非常简单,在官网:https://nodejs.org/en/download/ 上下载Macintosh Installer的安装包一键安装即可,它会自动装在/usr/bin路径下,一般用户的$path都包含该路径,因此不用做额外的环境变量配置。

Windows和Linux下安装NodeJS

在Windows和Linux(ubuntu)下Node.js的安装具体细节见:http://www.runoob.com/nodejs/nodejs-install-setup.html

第一个Web程序

下面是利用node.js写的一个最简单的可以用浏览器访问的程序HelloWorld.js:

var http = require("http");
http.createServer(function(request, response){
   response.writeHead(200,{'content-Type':'text/plain'});
   response.end('I love Abao!\n');
}).listen(8888);
console.log('Server running at http:127.0.0.1:8888/');

在终端中运行这个Helloworld.js:

$ node HelloWorld.js
Server running at http:127.0.0.1:8888/
(该程序一直处于监听状态......)

在浏览器中的运行结果:

阿宝的NodeJS私房菜(一)_第1张图片
第一个程序:I love Abao!

程序中首先require了http这个模块,创建了一个http对象,使用createServer方法去监听8888端口,监听收到request请求利用匿名回调函数给出响应response,最终显示"I love Abao!"。

你可能感兴趣的:(阿宝的NodeJS私房菜(一))