欢迎您访问宜州一中 您可以登录 或注册
 
收藏本站 简繁转换
宜州一中举行2024届中考百日誓师大会             龙腾启新 筑梦未来 ——宜州区第一中学欢庆2024年元旦文艺晚会             走进嘉联丝厂 畅享研学之乐 ——宜州区第一中学开展研学实践活动             2023年河池市宜州区第一中学/宜州区红卫学校家庭经济困难大学新生入学资助项目发放名册(第二批)             展科技志向,圆飞行梦想 ——宜州区一中2025届举行无人机大赛             2023年河池市宜州区第一中学\红卫学校 家庭经济困难大学新生入学资助项目发放名册(第一批)             法制进校园 以法促成长 ——宜州一中举行“三姐护蕾”法治进校园活动             “英”你精彩,“语”你同行 —— 我校2025届举行英文风采大赛             法治进校园,以法促成长             但愿人长久 千里共婵娟 ——我校开展中秋节传统文化教育主题讲座            

DoraCMS

您现在的位置是:首页>文档内容页

文档详情

NodeJS独立开发web框架——静态服务器开发(2)

doramart 2024-03-29 22:33:17 技术文档232089
下面我们编写一个单独的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.readFilefs.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异步,这样性能会很高。

浏览器访问效果

下一节,通过对程序进一步扩展,指定静态服务器目录,让客户端可以访问该目录内的所有文件。

文章评论

取消回复
登录 参与评论

评论列表(