首页 > 编程语言 >无涯教程-Node.js - Web模块

无涯教程-Node.js - Web模块

时间:2024-01-21 14:31:28浏览次数:40  
标签:Node Web http 无涯 js var 服务器 response

Web服务器是一个软件应用程序,它处理HTTP客户端(例如Web浏览器)发送的HTTP请求,并返回网页以响应客户端, Web服务器通常提供html文档以及图像,样式表和脚本。

Web应用架构

Web应用程序通常分为四层-

Web Architecture
  • Client                  - 该层由Web浏览器,移动浏览器或可以向Web服务器发出HTTP请求的应用程序组成。

  • Server                 - 此层具有Web服务器,可以拦截客户端发出的请求并将响应传递给他们。

  • Business Layer - 该层包含应用服务器,Web服务器利用该服务器来执行所需的处理。

  • Data Layer        - 此层包含数据库或任何其他数据源。

创建Web服务器

Node.js提供了一个 http 模块,该模块可用于创建服务器的HTTP客户端,以下是侦听8081端口的HTTP服务器的最基本结构。

创建一个名为server.js的js文件-

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 Status: 404 : NOT FOUND
         //Content Type: text/plain
         response.writeHead(404, {'Content-Type': 'text/html'});
      } else {	
         //Page found	  
         //HTTP Status: 200 : OK
         //Content Type: text/plain
         response.writeHead(200, {'Content-Type': 'text/html'});	
         
         //将文件内容写入响应正文
         response.write(data.toString());		
      }
      
      //将文件内容写入响应正文
      response.end();
   });   
}).listen(8081);

//控制台将打印消息
console.log('Server running at http://127.0.0.1:8081/');

接下来,让无涯教程在创建server.js的同一目录中创建以下名为index.htm的html文件。

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

现在让无涯教程运行server.js以查看输出-

$node server.js

验证输出。

Server running at http://127.0.0.1:8081/

向服务器发出请求

在任何浏览器中打开http://127.0.0.1:8081/index.htm,以查看以下输出。

First Server Application

在服务器端验证输出。

Server running at http://127.0.0.1:8081/
Request for /index.htm received.

创建Web客户端

可以使用 http 模块创建Web客户端。让无涯教程检查以下示例。

创建一个名为client.js的js文件-

var http=require('http');

//请求使用的选项
var options={
   host: 'localhost',
   port: '8081',
   path: '/index.htm'  
};

//回调函数用于处理响应
var callback=function(response) {
   //使用数据持续更新流
   var body='';
   response.on('data', function(data) {
      body += data;
   });
   
   response.on('end', function() {
      //数据完全接收。
      console.log(body);
   });
}
//向服务器发出请求
var req=http.request(options, callback);
req.end();

现在从不同于server.js的其他命令终端运行client.js以查看输出-

$node client.js

验证输出。

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

在服务器端验证输出。

Server running at http://127.0.0.1:8081/
Request for /index.htm received.

参考链接

https://www.learnfk.com/nodejs/nodejs-web-module.html

标签:Node,Web,http,无涯,js,var,服务器,response
From: https://blog.51cto.com/u_14033984/9355507

相关文章

  • 无涯教程-Node.js - 事件发送
    Node中的许多对象都会发出事件,例如net.Server每次对等点连接到它时都会发出一个事件,而fs.readStream在文件打开时会发出一个事件。发出事件的所有对象都是events.EventEmitter的实例。EventEmitter类如上一节所述,EventEmitter类位于事件模块中。可通过以下代码访问-//导入事件......
  • 无涯教程-Node.js - IO系统
    Node使用围绕标准POSIX函数的简单包装器来实现文件I/O,可以使用以下语法导入节点文件系统(fs)模块-varfs=require("fs")同步与异步fs模块中的每个方法都有同步形式和异步方式,异步方法将最后一个参数作为完成函数回调,并将回调函数的第一个参数作为错误。最好使用异步方法而不是......
  • 无涯教程-Node.js - Buffers
    纯JavaScript是Unicode友好的,但是对于二进制数据却不是,在处理TCP流或文件系统时,必须处理八位位组流,Node提供了Buffer类,该类提供了实例来存储类似于整数数组的原始数据,但对应于V8堆外部的原始内存分配。缓冲区类是全局类,可以在应用程序中访问而无需导入缓冲区模块。创建缓冲区......
  • 无涯教程-Node.js - Streams
    Stream流是使您可以连续地从源读取数据或将数据写入目标的对象,在Node.js中,有四种类型的流-Readable  - 用于读取操作的流。Writable   - 用于写操作的流。Duplex    - 可用于读取和写入操作的流。Transform -一种双工流,其中基于输入来计算输出......
  • node-red__function_1
               ......
  • 软件测试/测试开发/全日制|Page Object模式:为什么它是Web自动化测试的必备工具
    为UI页面写测试用例时(比如web页面,移动端页面),测试用例会存在大量元素和操作细节。当UI变化时,测试用例也要跟着变化,PageObject很好的解决了这个问题。使用UI自动化测试工具时(包括selenium,appium等),如果无统一模式进行规范,随着用例的增多会变得难以维护,而PageObject让自......
  • 无涯教程-MATLAB - Octave
    GNUOctave是像MATLAB这样的高级编程语言,它与MATLAB大部分兼容。它也用于数值计算。Octave与MATLAB具有以下共同特征-矩阵是基本数据类型它具有对复数的内置支持它具有内置的数学函数和库它支持用户定义的函数GNUOctave也是可免费重新发行的软件,您可以根据自由软件基金会......
  • 无涯教程-MATLAB - 变换(Transforms)
    MATLAB提供了用于处理变换的命令,例如Laplace和Fourier变换,转换在科学和工程中用作简化分析并从另一个角度查看数据的工具。例如,傅立叶变换允许我们将表示为时间函数的信号转换为频率函数,拉普拉斯变换使我们能够将微分方程转换为代数方程。MATLAB提供了laplace,傅立叶和fft命......
  • 无涯教程-MATLAB - 多项式(Polynomials)
    MATLAB将多项式表示为行向量,其中包含按降序排序的系数。例如,方程P(x)=x4+7x3-5x+9可以表示为-p=[170-59];判断多项式polyval函数用于以指定值判断多项式。例如,要判断我们先前的多项式p,在x=4处,键入-p=[170-59];polyval(p,4)MATLAB执行上述语句并返......
  • WEB服务器有什么作用
    随着时代的发展,互联网也进入了每家每户,随着业务需求的不断提升,各类服务器技术也在不断兴起。接下来我们单独来聊聊web服务器。Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以处理浏览器等Web客户端的请求并返回相应响应,也可以放置网站文件,让全世界浏览;可以......