如果我们使用PHP来编写后端的代码时,需要Apache 或者 Nginx 的HTTP 服务器,并配上 mod_php5 模块和php-cgi。
从这个角度看,整个"接收 HTTP 请求并提供 Web 页面"的需求根本不需 要 PHP 来处理。
不过对 Node.js 来说,概念完全不一样了。使用 Node.js 时,我们不仅仅 在实现一个应用,同时还实现了整个 HTTP 服务器。
事实上,我们的 Web 应用以及对应的 Web 服务器基本上是一样的。
这里我们使用创建文件,然后执行的方式,来创建此实例。
在E:\NodejsDemo文件夹下,创建“server.js”文件,代码如下:
1 var http = require("http"); 2 3 http.createServer(function(request,response){ 4 response.writeHead(200, {"Content-Type" : "text/plain"}); 5 response.end("Hello World!\n"); 6 }).listen(88); 7 8 console.log("Server running at http://127.0.0.1:88/")
上述代码中,我们先引入了http模块,并存入本地的http对象中。
然后使用http对象创建一个服务,设置文档响应类型等,最后结束并返回响应一串字符串。
启动监听在88端口。
以上代码,我们已经完成了一个简单Node.js的HTTP服务器的创建。
下面我们在DOS下使用node命令来运行它:
此时,防火墙可能会提示,点击允许访问即可:
然后、我们打开浏览器,访问地址:http://127.0.0.1:88,效果如下:
看到这个界面了,是不是很鸡冻,哈哈。
不知道大家是否了解类似于JSP、ASP.NET的运行机制。
例如JSP,解析的时候,最后生成的是HTML源码文件,将源JSP文件中的代码一行行拼接输出。
按照这个原理,我们能不能也实现一个HTML的服务器呢?
主程序“main.js”的代码如下:
1 var http = require("http"); 2 3 var html = ""; 4 html += "<!DOCTYPE html>"; 5 html += "<html>"; 6 html += " <head>"; 7 html += " <meta charset='utf-8' />"; 8 html += " <title>孤影'Blog</title>"; 9 html += " <style>body{background:black; color:#0F6; text-align:center; text-shadow:0px 0px 10px #0F6;}</style>"; 10 html += " </head>"; 11 html += " <body>"; 12 html += " <h1>孤影'Blog</1>"; 13 html += " <h2>Welcome to my blog!</h2>"; 14 html += " </body>"; 15 html += "</html>"; 16 17 http.createServer(function (request, response) { 18 response.writeHead(200, { "Content-Type": "text/html" }); 19 response.end(html); 20 }).listen(88);
OK、打开DOS、运行“node main.js”,效果如下:
有没有脑洞大开?!呵呵。下山自行修炼去吧。哈哈。。
这里,我奉承简单入门为主,所以就不做过多的介绍了,大家理解就好。
W3C官方的解释如下:
个人介绍:
我也是刚学,所以深刻体会,这个东西慢慢的理解就好,别太死扣语法了。循序渐进的而已。
希望大家赶紧上手吧,呵呵。