使用Node.js创建Web服务器全流程

Node.js使用Node.js创建Web服务器全流程已关闭评论23

部署网站需要先创建Web服务器,新手站长分享使用Node.js创建Web服务器全流程,Web服务器一般指网站服务器,目前主流的Web服务器是Nginx、Apache和IIS,新手站长xinshouzhanzhang.com分享使用Node.js创建Web服务器全流程:

Node.js 提供了 http 模块,http 模块主要用于搭建 HTTP 服务端和客户端,使用 HTTP 服务器或客户端功能必须调用 http 模块,代码如下:文章源自新手站长-https://xinshouzhanzhang.com/webnodejs.html

var http = require('http');

以下是演示一个最基本的 HTTP 服务器架构(使用 8080 端口),创建 server.js 文件,代码如下所示:文章源自新手站长-https://xinshouzhanzhang.com/webnodejs.html

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/html
         response.writeHead(404, {'Content-Type': 'text/html'});
      }else{             
         // HTTP 状态码: 200 : OK
         // Content Type: text/html
         response.writeHead(200, {'Content-Type': 'text/html'});    
         
         // 响应文件内容
         response.write(data.toString());        
      }
      //  发送响应数据
      response.end();
   });   
}).listen(8080);
 
// 控制台会输出以下信息
console.log('Server running at http://127.0.0.1:8080/');

接下来我们在该目录下创建一个 index.html 文件,代码如下:文章源自新手站长-https://xinshouzhanzhang.com/webnodejs.html





新手站长(xinshouzhanzhang.com)


    

我的第一个标题

我的第一个段落。文章源自新手站长-https://xinshouzhanzhang.com/webnodejs.html

执行 server.js 文件:文章源自新手站长-https://xinshouzhanzhang.com/webnodejs.html

$ node server.js
Server running at http://127.0.0.1:8080/

接着我们在浏览器中打开地址:文章源自新手站长-https://xinshouzhanzhang.com/webnodejs.html

http://127.0.0.1:8080/index.html

执行 server.js 的控制台输出信息如下:文章源自新手站长-https://xinshouzhanzhang.com/webnodejs.html

Server running at http://127.0.0.1:8080/
Request for /index.html received.     #  客户端请求信息

使用 Node 创建 Web 客户端
Node 创建 Web 客户端需要引入 http 模块,创建 client.js 文件,代码如下所示:文章源自新手站长-https://xinshouzhanzhang.com/webnodejs.html

var http = require('http');
 
// 用于请求的选项
var options = {
   host: 'localhost',
   port: '8080',
   path: '/index.html'  
};
 
// 处理响应的回调函数
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();

新开一个终端,执行 client.js 文件,输出结果如下:文章源自新手站长-https://xinshouzhanzhang.com/webnodejs.html

$ node  client.js 



新手站长(xinshouzhanzhang.com)


    

我的第一个标题

我的第一个段落。文章源自新手站长-https://xinshouzhanzhang.com/webnodejs.html

执行 server.js 的控制台输出信息如下:

Server running at http://127.0.0.1:8080/
Request for /index.html received.   # 客户端请求信息

【阿里云99元服务器】入口2核2G3M带宽、新老用户同享、99元/年续费到2027年

【腾讯云特价】:2核2G3M 88元一年、2核2G4M 108元1年 366元3年、2核4G5M 166元/年 566元3年、4核8G12M 446元一年 更多配置8核16G18M和16核32G28M 点我直达 >>

2023阿里云优惠活动:xinshouzhanzhang.com/go/aliyun

注意:以上特价轻量服务器限制条件为“产品首单特惠”,如果你的腾讯云账号已经是老用户,建议重新注册一个腾讯云账号,如果你是新用户符合条件,那么无脑入,确实值得。

 
腾讯云优惠活动

腾讯云轻量应用服务器镜像是什么?怎么选镜像比较好?

腾讯云轻量应用服务器镜像是什么?镜像是轻量服务器的装机盘,镜像用户按照云服务器的操作系统。腾讯云轻量应用服务器镜像如何选择?可以选择宝塔Linux面板8.0.4腾讯云专享版,如果需要Win系统建议选择...