如何创建一个简单的Web服务器,通过“readFile”函数读取给定磁盘上的给定文件

如何创建一个简单的Web服务器,通过“readFile”函数读取给定磁盘上的给定文件

要创建一个Web服务器,我们需要使用 require() 方法导入 http 模块,并使用HTTP模块的 createServer() 方法创建一个服务器。

语法:

const http = require('http')
const server = createServer(callback).listen(port,hostname);

现在,在createServer()方法的回调中,我们需要从本地目录中读取文件并使用我们的服务器进行服务。为此,我们需要导入 ‘fs’ 模块并使用其 readFile() 方法。

语法:

导入’fs’模块:

const fs = require('fs')

fs.readFile():

fs.readFile( filename, encoding, callback_function)

一旦我们完成了对文件的阅读,我们需要在我们的服务器上进行呈现。

项目设置: 创建一个文件 serving_files.js 并将其目录设置为您的终端的当前目录。

如何创建一个简单的Web服务器,通过“readFile”函数读取给定磁盘上的给定文件

示例1: 在这个示例中,我们在代码中指定了我们的文件名serving_files.js,所以当我们在浏览器中运行 http://localhost/ 时,我们的文件将被渲染。

serving_files.js

// Import http and fs  
const fs=require('fs') 
const http = require( 'http') 
  
// Creating Server  
http.createServer((req, res) =>{ 
  
    // Reading file  
    fs.readFile(`serving_files.js`, function (err,filedata) { 
      if (err) { 
  
        // Handling error  
        res.writeHead(404); 
        res.end(JSON.stringify(err)); 
        return; 
      } 
  
      // serving file to the server  
      res.writeHead(200); 
      res.end(filedata); 
    }); 
}).listen(80,'localhost');

运行该应用程序的步骤: 在终端中运行以下命令以启动服务器:

node serving_files.js

输出:

// Import http and fs 
const fs=require('fs')
const http = require( 'http')

// Creating Server 
http.createServer((req, res) =>{
    // Reading file 
    fs.readFile(`serving_files.js`, function (err,filedata){
      if (err) {
        //   Handling error 
        res.writeHead(404);
        res.end(JSON.stringify(err));
        return;
      }
    //   serving file to the server 
      res.writeHead(200);
      res.end(filedata);
    });
}).listen(80,'localhost');

如何创建一个简单的Web服务器,通过“readFile”函数读取给定磁盘上的给定文件

示例2: 在这个示例中,我们不是在我们的代码中指定文件名,而是通过将文件名传递到我们的请求URL中来实现。这样,我们可以通过在我们的请求URL中指定文件名来访问服务器上的任何文件,并且不会被限制为只能检索一个文件。

因此,要打开服务器上的任何文件,我们需要按照以下方式传递我们的请求URL:

http://hostname:port/file_name

在我们的示例中,我们的请求URL将是

http://localhost/serving_files.js

serving_files.js

// Import http and fs  
const fs=require('fs') 
const http = require( 'http') 
  
// Creating Server  
http.createServer((req, res) =>{ 
  
    // Reading file  
    fs.readFile(__dirname + req.url, function (err,filedata) { 
      if (err) { 
  
        // Handling error  
        res.writeHead(404); 
        res.end(JSON.stringify(err)); 
        return; 
      } 
      // serving file to the server  
      res.writeHead(200); 
      res.end(filedata); 
    }); 
}).listen(80,'localhost');

运行应用程序的步骤: 在终端中运行以下命令启动服务器:

node serving_files.js

结果:

// Import http and fs 
const fs=require('fs')
const http = require( 'http')

// Creating Server 
http.createServer((req, res) =>{
    // Reading file 
    fs.readFile(__dirname + req.url, function (err,filedata) {
      if (err) {
        //   Handling error 
        res.writeHead(404);
        res.end(JSON.stringify(err));
        return;
      }
    //   serving file to the server 
      res.writeHead(200);
      res.end(filedata);
    });
}).listen(80,'localhost');

如何创建一个简单的Web服务器,通过“readFile”函数读取给定磁盘上的给定文件

注意: 在上面的示例中,我们使用了 端口80,即 默认的HTTP端口 。所以,即使我们在请求URL中没有指定端口号,它默认为80。

如果您使用其他端口号,请在请求URL中指定。例如,如果您使用的是8000端口,则您的请求URL应为

http://localhost:8000/serving_files.js

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程