PHP架构是"浏览器-HTTP服务器-PHP解释器”的组织方式,而Node.js采用了一种不同的组织方式即"浏览器-Node”
现在创建一个HTTP服务器:
(1)建立app.js文件,内容如下:
var http = require('http');
http.createServer(function(req,res){
res.writeHead(200,{'Content-type':'text/html'});
res.write('<h1>Node.js</h1>');
res.end('<p>Hello World!</p>');
}).listen(3000);
console.log("HTTP server is listening at port 3000.");
(2)cmd进入到存放app.js的地址运作node app.js命令,再访问浏览器http://localhost:3000或http://127.0.0.1:3000查看内容
延伸:在终端运行这个脚本时,我们发现它并不会立即结束并退出,而是一直等待,我们需要按下Ctrl+C才会结束,这是因为listen函数创建了时间监听器,使得Node.js不会退出事件循环。
HTTP应用时会发现,无论修改代码哪一部份,都必须终止Node.js再重新运行才奏效,这是因为Node.js只有在第一次引用到某部分时才会去解析脚本文件,以后都直接访问内存,避免重复载入,这种方式虽然提高性能,但不利于开发。
而针对此的改良小技巧是使用Supervisor,它会监视代码的改动并且重新启动Node.js:
cmd在node_modules目录下面安装npm install -g supervisor
接下来,使用supervisor命令启动app.js--->supervisor app.js。
当代码被改动时,运行的脚步会被终止,然后重新启动。在终端显示为:
直接在浏览器中刷新查看即可。