Nodejs Web模块, readFile 根据请求跳转到响应html

index.js

根据请求的路径pathname,返回响应的页面。

var http = require('http');
var fs = require('fs');
var url = require('url');


// 创建服务器
http.createServer( function (request, response) {  
   // 解析请求,包括文件名
   var pathname = url.parse(request.url).pathname;
   
   // 输出请求的文件名
   console.log("Request for " + pathname + " received.");
   
   // 从文件系统中读取请求的文件内容
   fs.readFile(pathname.substr(1), function (err, data) {
      if (err) {
         console.log(err);
         // HTTP 状态码: 404 : NOT FOUND
         // Content Type: text/plain
         response.writeHead(404, {'Content-Type': 'text/html'});
      }else{             
         // HTTP 状态码: 200 : OK
         // Content Type: text/plain
         response.writeHead(200, {'Content-Type': 'text/html'});        
         
         // 响应文件内容
         response.write(data.toString());               
      }
      //  发送响应数据
      response.end();
   });   
}).listen(3000);

// 控制台会输出以下信息
console.log('Server running at http://127.0.0.1:3000/');

  

index.html

<html>
<head>
<title>Sample Page</title>
</head>
<body>
Hello World!
</body>
</html>

  

浏览器中打开: http://127.0.0.1:3000/index.html

页面显示 index.html