第一份Node.js代码

一起学习吧!
第一讲先介绍如何搭建一个很基础的http服务器,当然既然使用node.js,我们至少也要有js的基础知识。


准备
node.js是一种可以在后台运行的js代码,既然如此我们也需要一种类似浏览器的js解释器来运行后台代码–这就是NODE.JS。实际上它既是一个运行环境,也像jquery这样提供了一个强大的库。
所以,node.js的前期工作就是安装好它。安装很简单,记住让他自己配置好环境变量就行。(你一定不愿意再花时间找配置文件改吧)附上链接:nodejs.org


著名的“HELLO WORLD”
哈哈哈,有看到了著名的hello world程序!但是这次我们做高级一点,还是先贴代码吧:

var http=require(“http”);
http.createServer(function(request,response){
response.writeHead(200,{“Content-Type”:”text/plain”});
response.write(“HELLO WORLD”);
response.end();
}).listen(8888);

怎么样?看起来很简单,结构也很熟悉对吧。把它保存为server.js,解释之……

第一行看字面意思就知道了吧,请求了http模块,并把它“赋值”http变量。学过python的是不是很有熟悉感?
第二行createServer函数的实参是一个函数,神奇?!在js中,这是可行的。
之后就是发送报头>>>输出>>>结束。整个createServer函数监听8888端口。
命令行下运行node server.js,浏览器访问127.0.0.1:8888就有结果了。

先看一份代码:

var http=require("http");
var url=require("url");

function onRequest(request,response)
{
    var pathname=url.parse(request.url).pathname;
    console.log(pathname+" Received");
    response.writeHead(200,{"Content-type":"text/plain"});
    response.write("HELLO WORLD");
    response.end();
}

http.createServer(onRequest).listen(8888);

console.log("Started");

函数式编程风格!

这次用到了url模块,它有哪些功能不做介绍,看名字就知道。另,较之上一篇,这里用到了request这个参数了。顾名思义,用户发送的所有请求都包含在request对象中。而这里用到了request.url,获取请求路径。各API参考文档


如果你有运行(命令行 node server.js)这段代码就发现,会先在终端窗口打印“Started”,待浏览器请求127.0.0.1:8888的时候,再会打印“/ Received \n /favicon.ico Received”。不过联想到之前讲到过的ajax,这东西还真是这么回事。


那么,怎么解释呢?


看看官网上的一句话“Node.js uses an event-driven, non-blocking I/O model”–“Node.js使用事件驱动、非阻塞式I/O模型”。不管前面怎么说,看到“非阻塞”就应该明白了吧。非阻塞