NodeJS独立开发web框架——静态服务器开发(2)
下面我们编写一个单独的html文件,当有请求时,会把它作为响应数据。
首先,创建 day01/public文件夹,然后在public文件夹内创建一个index.html网页文档。
服务器返回主页功能
下面我们编写一个单独的html文件,当有请求时,会把它作为响应数据。
首先,创建 day01/public
文件夹,然后在public
文件夹内创建一个index.html
网页文档。
下面编写一段html
<!doctype html> <html> <head> <meta charset="utf-8"/> <title>node.js 你好</title> </head> <body> <hr> <b><i>node.js 你好!javascript 你好!</i></b> <hr> </body> </html>
静态html文档有了,如何让服务器读取呢? 这就需要用到另一个模块,File System
模块。通过var fs = require("fs")
可以得到该模块对象。
通过 fs.readFile
或 fs.readFileSync
方法可以读取文件内容,两者的区别是一个是异步的,一个是同步的。异步就是底层的读取数据操作和主程序是两个进程,也就是说不会阻塞,而同步正好相反。下面我们修改handle
函数让他读取到index.html
文档的内容,会采用异步和同步两种方式实现,功能效果是一致的。
把 httpServer.js文件拷贝一份叫httpServer2.js,我们将扩展httpServer.js程序的功能。
handle函数添加读取主页功能
同步实现方法
var fs = require("fs"); // 得到File System模块对象 function handle(request,response){ var data = fs.readFileSync(__dirname+"/public/index.html"); // 读完文档数据并返回后,程序才能继续。 response.write(data); response.end(); }
异步实现方法
var fs = require("fs"); // 得到File System模块对象 function handle(request,response){ // 回调函数,当底层得到文档后,会调用该函数。 function callback(err,data){ response.write(data); response.end(); } // 异步方式不会阻塞主程序进程 fs.readFile(__dirname+"/public/index.html",callback); }
一般在node.js实际开发中都采用异步方式,因为node.js的优势就在于非阻塞I/O异步,这样性能会很高。
浏览器访问效果
下一节,通过对程序进一步扩展,指定静态服务器目录,让客户端可以访问该目录内的所有文件。
很赞哦! ( 0
)