阿宝的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/
(该程序一直处于监听状态......)

在浏览器中的运行结果:

第一个程序:I love Abao!

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    w_zhuan阅读 3,643评论 2 41
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,925评论 25 709
  • 总结一: [node.js总结](http://www.cnblogs.com/Darren_code/archi...
    xiumeiii阅读 1,953评论 0 14
  • 想和你在湖边盖座草房,房前种些花草,屋后养些鸡鸭。 日出而作,随你撑一叶小舟,帮你在湖中撒网,替你烹一壶清茶,看你...
    范大小姐阅读 253评论 2 1
  • 昨晚前任破格跟我说了句晚安,这个词她应该对我遗忘两年多了吧,昨天是吃错药了吧。今天起床也跟我问了好,有点莫名其妙。...
    禾必阅读 138评论 6 3